stinger3のテーマでちえなびを書いてます(2014年2月現在)。いろいろごにょごにょしてカスタマイズしてきましたが、sitnger3の関連記事のところが不満だったので、ちょっと手を入れてみました。
stinger3の関連記事の現状と私の場合
sitnger3では記事を書くとカテゴリーによる関連記事が10件ランダムで排出されます。私の記事の場合、カテゴリが階層構造になっているため、大カテゴリ、小カテゴリのどちらかに属する記事がランダムで表示されます。
豊川市の記事なのに、愛知県の大カテゴリで名古屋市の記事が載るなんてことが多々あり、今年の目標である、回遊性を高めてページビューを増やすこと障害になってました。
これを小カテゴリだけにしたい!と常々思っていましたが、その記事の属する小カテゴリを取り出してクエリを作るというのができなくてあきらめてましたが、別の方法でできました。
stinger3のカテゴリによる関連記事の修正点
single.phpの関連記事表示のループのところで
<div id="topnews"> <div> <?php $categories = get_the_category($post->ID); $category_ID = array(); foreach($categories as $category): array_push( $category_ID, $category -> cat_ID); endforeach ; $args = array( 'post__not_in' => array($post -> ID), 'posts_per_page'=> 10, 'category__in' => $category_ID, 'orderby' => 'rand', ); $st_query = new WP_Query($args); ?>
この後まだまだ関連記事のループが続きますが割愛して、以下の部分を変更します。
‘category__in’ => $category_ID,を’category__and’ => $category_ID,に変更です。
category__inはカテゴリをor選択するもので。category__andはand選択です。私の場合、大カテゴリも小カテゴリも両方にチェックを入れているので愛知県かつ豊川市のカテゴリを含む記事とパラメーターに指定して選択すればカテゴリが狭めれます。
stinger3のタグによる関連記事の追記
またカテゴリだけではつまらないのでタグによる関連記事もつけました。
<div id="topnews"> <div> <?php $posttags = get_the_tags($post->ID); $tag_ID = array(); foreach($posttags as $posttag): array_push( $tag_ID, $posttag -> term_id); endforeach ; $args = array( 'post__not_in' => array($post -> ID), 'posts_per_page'=> 5, 'tag__in' => $posttag, 'orderby' => 'rand', ); $st_query = new WP_Query($args); ?>
上記のようにクエリのパラメーター指定をタグに置き換えただけです。タグはあるときとないときがあるので、条件分岐もつけたほうがいいですね。
stinger3を使用されている方で関連記事に不満があるという方試してみてはいかがでしょうか?また、zenbackに頼っている方やYARPPなどの他のプラグインを使用している方など関連記事をカテゴリやタグで自分でクエリを作ってループさせるのはいかがでしょうか?