WordPressでAll in One SEO Packの詳細(Description)の内容を自動で抜粋に入れ込む方法。
ちわーす。
やりました、かっぱふぅ( @kappafoo )です。
WordPressで、All in One SEO Packの詳細(Description)の内容をコピペせずに、自動で抜粋に入れ込む方法ができましたので紹介します。
このブログでは記事を投稿すると、かっぱふぅのfacebookページとかっぱふぅのtwitterに自動で記事が投稿されるようにしています。
しかし、facebookページでは、記事の本文のはじめの部分がついて投稿されます...これを変更したいと思ってました。
私のWordPressには「All in One SEO Pack」プラグインを入れてます。
この「All in One SEO Pack」プラグインは、検索サイト用にページのタイトルを変えたり、詳細(Description)を書いたりすることができます。
これまで、私はすべての記事に「All in One SEO Pack」のタイトルと詳細を書いてました。
なので、それを使って昨年のうちにOGPの設定を行なってみたりしてます。
⇒ WordPressでOGP設定を考えてみた。
それでも、状況は変わらず...疑問のまま、放置してました。
がっ、最近になってWordPressの「投稿の編集」画面に「抜粋」の入力スペースがあることに気が付きました。
「抜粋」を使えば、本文のはじめの部分の中途半端な文章が入らなくて良さそうです。
ですが「抜粋」を書いて「All in One SEO Pack」のタイトルを書いたり、あるいは、「All in One SEO Pack」の詳細を書いた後に、抜粋にコピペするのは面倒に思いました。
また「All in One SEO Pack」の詳細の欄では文字数をカウントしてくれるので、こちらに書きたいという気持ちもあります。
そこで「All in One SEO Pack」の詳細の欄に書いた内容が、そのまま「抜粋」に入るような楽な方法を探しました...しかし、私の探し方では直接の方法は見当たりませんでした。
ですが、世の中は広いもので、これは使えるぞ!という方法が書かれてあるページを見つけました。
それが「aoringo works」さんの「記事本文から自動で抜粋を作る」のページです。
WORDPRESSテーマをカスタマイズしよう – その5 – 記事本文から自動で抜粋を作る | aoringo works
記事本文から自動で抜粋を作る …
方法としてはフィルターフック「excerpt_save_pre(記事抜粋)」を利用して、記事抜粋がデータベースに保存される前に「All in One SEO Pack」の詳細の内容を抜粋に書き込んじゃおうというものです。
というわけで、参考としたページに載ってる方法をひとつずつ確かめていきました。
...functions.phpをイジるのでちょっと間違うと、簡単にInternalエラーを吐いてくれます...大変でした。
$_POSTの中身を見るコード
[php]function replace_post_exp($exp) {
vbt($_POST,”post”);
return $exp;
}
add_filter(‘excerpt_save_pre’, ‘replace_post_exp’);[/php]
このコードで、つまづきましたが[php],”post”[/php]の部分を無くすことで「$_POST」の中身を見ることができました。
[post_title] => タイトル
[content] => 本文
~略~
[excerpt] => 抜粋
~略~
[aiosp_title] => aioseo タイトル
[aiosp_description] => aioseo 詳細
[aiosp_keywords] => aioseo,キーワード
ありましたよ、抜粋は[excerpt]に「All in One SEO Pack」の詳細は[aiosp_description]でした。
そこで、functions.phpファイルに次のコードを記述。
[php]function replace_post_exp($text) {
$text = $_POST[“aiosp_description”];
return $text;
}
add_filter(‘excerpt_save_pre’, ‘replace_post_exp’); [/php]
やりましたよ!できました。
「下書きとして保存」「公開」「更新」ボタンを押した時に、「All in One SEO Pack」の詳細が抜粋に書き込まれます。
これで、やりたかったことができました。
これを応用したら、いろいろとできそうな気がしますね...そのうち、考えてみようかな。