WordPressの各ページのタイトルを異なるものにした
Google先生に注意された
先日何気なくGoogleウェブマスターツールでここのブログについての診断を見たところ、「ページのタイトルが重複している」と言われました。ヘッダーのタイトルは変更していたのですが、カテゴリーやアーカイブで複数にわたるページについては分岐の仕方がわからなくて放置していたのです。しかし、指摘された以上放っておく訳にも行かず、色々と試しては玉砕、を繰り返しておりました。一応形になったのでメモ。で、長いので格納します。
今まではこんな感じ
header.phpの<title>タグのところは、このテーマ「Block」のオリジナルではこうでした。というか、たいていのテーマの初期状態はこうなってますね。
<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
これを「記事名-ブログ名 の順番で表示したい→それなら全ページそのルールで」と考えて、SEO Ultimateを試したのですが、おそらくは文字コードの不一致で、ケータイから見た時にタイトルが文字化けしたので止めました。で、しばらくはこんな感じにして使ってました。
<title><?php
// トップページのとき
if(is_home()) {bloginfo('name');}
//月別アーカイブのとき
else if (is_month()) {echo get_the_time('Y年 n月'); }
// 検索結果のとき
else if (is_search()) {echo '[' . $s . '] の検索結果';}
//その他
else wp_title('',true,'');
//トップページじゃない時はハイフンとブログ名表示
if (!is_home()) { echo ' - '. get_bloginfo('name'); } ?>
</title>
ほとんどこちらをコピペして変更したものです。ありがとうございますm(_ _)m
404エラーの時は404.phpに別途指定があったので、それを
<title><?php wp_title('-', true, 'right'); ?><?php bloginfo('name'); ?></title>
に変更してます。
全て404エラーの時と同じ変更でも良かったのですが、月別アーカイブの時の表示が好みではなかったのです。で、このままだとアーカイブなどの複数にわたるページではタイトルが重複したまま、ということが問題なわけです。
追加変更
こちらを参考にさせていただきました。
$pagedという関数が2ページ目以降に表示されるそうです。自分の好みとして「Page 2」という形で表示させたかったので、分岐条件をずっと探していたのですが、ちゃんとCodexの分岐条件タグに載ってました。しっかりしろ自分(^_^;)。
is_pagedという分岐条件を使って、こんな感じで表示の判定をさせます。
<?php if(is_paged()){echo ' Page ' . $paged;} ?>
完成形コード
最終的にこうなりました。
<title>
<?php
// トップページのとき
if(is_home()) {bloginfo('name');}
//月別アーカイブのとき
else if (is_month()) {echo get_the_time('Y年 n月'); }
// 検索結果のとき
else if (is_search()) {echo '[' . $s . '] の検索結果';}
//その他
else wp_title('',true,'');
//複数ページの時に表示
if(is_paged()){echo ' Page ' . $paged;}
//トップページじゃない時はハイフンとブログ名表示
if (!is_home()) { echo ' - '. get_bloginfo('name'); } ?>
</title>
これで全ページ違うタイトルになったはず。おかしなところがあったら教えて下さいm(_ _)m


Recent Comments