WordPressで<title> ~ </title>タグの内容をページごとに切り替える方法
- 2013/03/01
全てのページでタイトルタグの内容がサイト名だとコンテンツページをブックマークした時にもサイト名になってしまってユーザビリティ的にもよくありませんが、SEO的にもよろしくありませんよね。
そこでページの種類によってtitleタグの内容を変更する方法です。
ページタイトルは適切に!
後で読もうと思って、とりあえずブックマークしたページ。タイトルがコンテンツ名であれば探しやすいですが、サイト名だとドレがドレだか?ということになりかねません。大抵の場合、後で読もうと思ってブックマークする場合はタイトルは変更せずに保存することも多いと思いますから。
そこで、ページごとに適切なタイトルになるように心がけましょう!これは、WordPressだけではなく静的にサイトを構築する時も同じです。学生が課題でサイトを作る場合、全てのページがサイト名だったり、「ここはタイトルです」だったりします。タイトルの重要性を分かってない証拠です。(汗)
if文を使って処理を分岐する
WordPresでheader.phpを使っている場合、if文を使わないと全てのページで同じタイトルが出力されてしまいます。そこで、ページの種類によって出力内容を変更するにはif文を使用します。
if(条件式){ 処理1 }else{ 処理2 }
if文を記述する場合、{}を使う場合と、:(コロン)を使う場合で若干書き方が異なります。私は{}を使う書き方に慣れていたので、最初はアレ?と思いましたが、WordPressに関しては、ネットや書籍などを見る限り :(コロン)を使った記述が多いような気がします。
if(条件式) : 処理1 else : 処理2 endif;
if文と一緒に使用するもの
- is_search()
- 検索結果かどうかを判断する時に使います。戻り値は true 又は false です。
- is_front_page()
- フロントページかどうかを判断する時に使います。戻り値は true 又は false です。
- $page
- 固定ページや記事のページを分割した時に使用されるページ番号
- $paged
- カテゴリーや月別アーカイブなどの一覧ページのページ番号
実際に使用するif文はこんな感じ
<title><?php global $page, $paged; if(is_search()) { wp_title('',true,'left'); echo ' - '; }else{ wp_title('|',true,'right'); } bloginfo('name'); if(is_front_page()) { echo ' - '; bloginfo('description'); } if($paged >= 2 || $page >=2) { echo ' - ' . sprintf('%sページ',max($paged,$page)); } ?></title>
※ちなにみ、今回紹介したコードは「WordPressの教科書」で紹介されているものを参考にしたものです。この方法を使えば、メタタグもトップページはサイトの説明、カテゴリーページはカテゴリーの説明とページの種類ごとに変更することが可能です。
この他にも「WordPressの教科書」には役立つ情報が記載されています。
【送料無料】本格ビジネスサイトを作りながら学ぶWordPressの教科書 [ プライム・ストラテジー… |
検索エンジン対策としても重要
人間が複数の文書を分類する場合、文書の数が多ければ多いほど、まずはタイトルだけをみて分類分類すると思います。その後、内容を読みながら間違っていれば分類し直す。検索エンジンは、それを同時に処理するかもしれませんが、タイトルと内容が食い違っていれば、それだけポイントは下がります。SEO対策としてもタイトルタグは重要な項目ですので、コンテンツごとに変えるようにしましょう。