SEO対策!WordPressで表示されている記事のカテゴリの人気記事をサイドバーに表示する方法
【img via WordPress Moleskine notebook by Nikolay Bachiyski】
昨日、多くのブロガーの間で話題になった和洋風KAIの「ブログでめしを食うために行っている5つのSEO」という記事。
中でも注目を集めたのは「ブログでジャンルを絞れないならページで絞る」という項目。具体的な施策として「同じカテゴリの最新記事を載せる」「記事下には関連記事をいれる」の2点が挙げられていたので、早速gori.meでも同様の施策を導入した!表示されている記事のカテゴリの人気記事をサイドバーに表示する方法を紹介する!
やるべきことを整理!
今回僕が考えたのは、表示されている記事のカテゴリIDを引っ張ってきて、それによって表示するサイドバーを切り替える、という方法。
サイドバーの対応
各カテゴリーごとにsidebar.phpを複製し、それぞれに対して人気記事を表示する。
single.phpの対応
single.phpではsidebar.phpを読み込む記述がある。その記述をカテゴリによって違うサイドバーを読み込むように記述する。
「sidebar-カテゴリ名.php」を用意
ではまずサイドバーの対応から!テーマファイルの直下(wp-content/themes/テーマファイル名/)にあるsidebar.phpを複製して以下のようなファイルを作成する。
「sidebar-カテゴリ名.php」
例:カテゴリ名がiphoneだった場合、sidebar-iphone.php
次にファイルの中身を修正する。僕は人気カテゴリを表示するためには「WordPress Popular Posts」というプラグインを利用しているので、それを利用した実装方法を紹介する。
WordPress Popular Postsはショートコードに対応しているのでそれを駆使して好みの情報を表示した。利用できるショートコード一覧はプラグインのFAQの中にあるのでそれを見ることをオススメする。
コードの書き方は以下の記事を参考にさせてもらった。
人気記事を表示する「WordPress Popular Posts」 | WP MEMO
single.phpにカテゴリ別の分岐記述を追加!
今度は先ほど量産した「sidebar-カテゴリ名.php」が記事によって表示が切り替わるようにsingle.phpで設定する。
基本のコードは以下の通り。
<?php if(in_category('カテゴリID')){ get_sidebar('カテゴリ名'); } elseif(in_category('カテゴリID')){ get_sidebar('カテゴリ名'); ・ ・ ・ } else { get_sidebar(); //上記以外の条件は普通のサイドバーを読み込む } ?>
カテゴリIDが分からない場合はWordPressの管理画面からカテゴリ一覧を開き該当するカテゴリのリンクをコピーすると「category&tag_ID=◯◯」という文字列が含まれているので、「◯◯」がそのカテゴリのカテゴリIDになる。
カテゴリ名と呼んでいるのは先程自分で指定したカテゴリごとのサイドバーファイルの「sidebar-△△.php」の「△△」の部分。
これらを組み合わせてsingle.phpの中にある「get_sidebar();」という記述の代わりに記載する。万が一何か失敗して表示されなくなってしまった時のために必ずバックアップを事前に取るべし!
あとは本番化するだけ!
あとはsingle.phpを更新したら反映するはず!実際にgori.meでは既に各記事のサイドバーには表示されている記事のカテゴリの人気記事が表示されている。
僕自身は表示されている記事のカテゴリを引っ張ってくるコードを正しく書くのに時間が掛かってしまったが、この方法であれば案外簡単に対応できるので、興味ある人はやってみるべし!
「SyntaxHighlighter Evolved」で利用できるショートコード一覧 | gori.mehtml …