WordPressのデフォルトテーマにはMETAタグの「keywords」と「description」 が設置されていないので、エントリーごとにdescriptionとkeywordsを自動で設置する方法を紹介します。
概要
- エントリーページの「keywords」には、そのエントリーが属するカテゴリーを入れる。
- エントリーにタグが付けられていた場合「keywords」にタグも入れる。
- エントリーページ以外の「keywords」には、デフォルトのキーワードを入れておく。
- エントリーページの「description」には、抜粋に自分で作成した要約がある場合はそれを入れる。
- 抜粋に何もない場合「description」には、エントリーの始めから60文字分を入れる。
- エントリーページ以外の「description」には、一般設定のキャッチフレーズ(このサイトの簡単な説明)を入れる。
設置方法
以下のコートをheader.phpに追加します。
<?php if ( is_single() ) { // エントリーページ ?>
<meta name="keywords" content="<?php foreach((get_the_category()) as $category) { echo $category->cat_name . ','; } $posttags = get_the_tags();if ($posttags) {foreach($posttags as $tag) {echo $tag->name . ','; } } ?>" />
<?php if ($post->post_excerpt){ // 抜粋あり
$summary = strip_tags($post->post_excerpt);
$summary = ereg_replace("(\r\n|\r|\n)", "", $summary); ?>
<meta name="description" content="<? echo $summary; ?>" />
<?php } else { // 抜粋なし
$content_summary = strip_tags($post->post_content);
$content_summary = ereg_replace("(\r\n|\r|\n)", "", $content_summary);
$content_summary = mb_substr($content_summary, 0, 60). "..."; ?>
<meta name="description" content="<?php echo $content_summary; ?>" />
<?php } ?>
<?php } else { // エントリーページ以外 ?>
<meta name="keywords" content="デフォルトのキーワードを入れておく" />
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php } ?>
以上でエントリーごとにkeywordsとdescriptionが自動で設置されるようになります。
さらに「is_page()」や「is_category()」、「is_archive()」などの条件分岐タグ使えばより細かく設定することもできます。
今となってはSEO的にさほど重要視されなくなったkeywordとdescriptionですが、やはりないよりはあった方がいいですよね。
追記 – 2011年4月15日
mtb様のご指摘により、プログラミングに誤りが発覚いたしました。
一点ミス発見
誤 mb_substr($summary, 0, 60)
正 mb_substr($content_summary, 0, 60)
現在は訂正したものを掲載しております。
mtb様にはこの場をお借りしてお礼申し上げます。

WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法 – http://bit.ly/bgPX8Q
助かりましたー
一点ミス発見
誤 mb_substr($summary, 0, 60)
正 mb_substr($content_summary, 0, 60)
mtb様
凡ミスしてますね… ご指摘ありがとうございます。
訂正いたしました。
[...] ってるやつ。アイデア次第でいろいろできるね。 WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法 « Blog × Play Under World カテゴリー: Web関連学習記録, WordPress|タグ: WordP [...]
[...] WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法 外部 [...]
これは便利ですね!毎回記事毎に設定するのが面倒に思ってきていたところなので、ブログではこの方がいいですね。
SEOのためにmeta要素を毎回設定するのは面倒だと思っていたところ、こちらのコードを参考にheader.phpに埋め込んでおけば楽になると思いました。現在、一からWPテーマを作っていて、初期から組み込んで置いた方がよいものは何かと模索していたので、とても参考になりました!
ありがとうございます。
[...] 参考サイト : WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法 | Play Under Wordl [...]