WordPressで、title、description、keywordsを投稿ごとに換えるには、プラグインの “All in OneSEO Pack“や、”HeadSpace2“が有名ですが…
個人的にはプラグイン同士のバッティングもありそうなので、なるべくプラグインを使わない方向でと思い…(といいながらたくさん入ってますがw)
カスタムフィールドと、抜粋を使用したコードになります。
仕様
Title
投稿 or ページのタイトル|管理画面で設定したブログのタイトル
Description
単独記事ページの場合
抜粋がある場合は、その文字列を入れ
抜粋がない場合は、投稿記事の始めから60文字を入れる
単独記事ページ以外の場合
管理画面で設定したブログのキャッチフレーズを入れる
Keywords
単独記事ページの場合
カスタムフィールドでの設定がある場合は、その文字列をそのまま入れ
カスタムフィールドでの設定がなく、投稿にタグがある場合は、タグを入れ
両方ともない場合は、デフォルトのキーワードを表示する
単独記事ページ以外の場合
デフォルトのキーワードを表示する
サンプルコード
当サイトで使用しているサンプルコードになります。
header.phpの<head></head>の間に入れます。
<!-- keyword description -->
<?php if ( is_single() ) { // 単独記事ページの場合 ?>
<?php //meta keywordsの設定
$custom_fields = get_post_custom();
$posttags = get_the_tags();
if ($keywords = isset($custom_fields['keywords'])) { ?>
<meta name="keywords" content="<?php echo get_post_meta($post->ID,'keywords',true); ?>" />
<?php }
elseif($posttags) { ?>
<meta name="keywords" content="<?php if ($posttags) {foreach($posttags as $tag)
{echo $tag->name . ','; } } ?>"/>
<?php }
else { ?>
<meta name="keywords" content="デフォルトキーワードを入れる" />
<?php } ?>
<?php if ($post->post_excerpt){ //meta descriptionの設定 抜粋あり
?>
<meta name="description" content="<?php echo $post->post_excerpt; ?>" />
<?php } else { //抜粋なし
$summary = strip_tags($post->post_content);
$summary = str_replace("\n", "", $summary);
$summary = mb_substr($summary, 0, 60). "..."; ?>
<meta name="description" content="<?php echo $summary; ?>" />
<?php } ?>
<?php } else { // 単独記事ページ以外の場合
?>
<meta name="keywords" content="デフォルトキーワードを入れる," />
<meta name="description" content="<?php bloginfo('description'); ?>" />
<?php } ?>
<!-- end keyword description -->
<title><?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' | '; } ?>
<?php bloginfo('name'); ?></title>
設定画面
keywordsは、カスタムフィールドで「keywords」を新規登録し、値を入れ「カスタムフィールドを追加」を押すと追加されます。
Descriptionは、抜粋に文字を追加するだけです。
補足:抜粋には上記のように “404 Not Found” 等、” “を使用すると、Firefoxでソースを見るとおかしなことになっていましたので注意してください。Safariはきちんと表示されます。
ちなみに「」()は問題なかったです。
確認
単独投稿ページ
単独投稿ページ以外
念の為に、いろいろと表示を確認してみて下さい。
【参考にさせていただきましたリンク先】
初心者でもプラグインを使わずにtitle,meta keyword,descriptionを投稿ごとに変える[WordPress使えそうなスニペットシリーズ] | マイペースクリエイターの覚え書き
WordPressでエントリーごとにkeywordsとdescriptionを自動で設置する方法 | Blog × Play Under World