WordPress Popular Postsで見ている記事と同じカテゴリのランキングを作る
サイト内の回遊率UPのため、サイドバーなどにWordPress Popular Postsで人気ランキングを表示させることが多いかと思います。基本の設置の仕方はプラグインや以前紹介した記事「【WordPress】人気ランキングをプラグインなしで作る【WordPress Popular Posts】」でのショートコードによる設置になりますが、今回は見ている記事と同じカテゴリーに絞って人気ランキングを作る方法になります。
カテゴリーは見ている記事についたカテゴリーすべてを含む
カテゴリー別に人気ランキングを作る場合、現在の記事のカテゴリーを取得→そのカテゴリー内での人気ランキングを書き出す、ということになりますが、基本的には記事にカテゴリーが複数ある場合、1つのカテゴリーしか取得されず、例えばPHP,CSS,SEOとカテゴリーがある場合、PHPのカテゴリー内での人気ランキングが書き出されることになります。今回のカスタマイズではそれら3つのカテゴリーをすべて合わせて人気ランキングを作る方法です。
実際に使ったコード
まず人気ランキングをつくるためのカテゴリーの取得や書き出し部分です。ウィジェットや設置したいphpファイルに書きます。
<?php
if (is_single() || is_category()) :
/* 現在のカテゴリ-の取得 */
$cat_now = get_the_category();
$cats_str = '';
foreach( $cat_now as $pref){
if( $cats_str =='' ) {
$cats_str = $pref->cat_ID;
} else {
$cats_str .= ','.$pref->cat_ID;
}
}
?>
あとは表示件数や集計方法のPHPを作って書き出します。
<?php
if (function_exists('wpp_get_mostpopular')) {
$args = array (
'limit' => '4',
'range' => 'weekly',
'order_by' => 'views',
'thumbnail_width' => '560',
'thumbnail_height' =>'420',
'cat' => $cats_str ,
'wpp_start' => '<div class="catpop">',
'wpp_end' => '</div>',
'stats_comments' => '0',
'stats_views' => '1',
'post_html' => '<li>{thumb}{title}<span class="post-stats">{stats}</span></li>');
wpp_get_mostpopular($args);
}
endif;
?>
その他CSSなどで装飾を整えて完成です!
まとめ
回遊率をUPさせる人気記事ですがカテゴリ別にすることで全体のランキングではランクインしなかった記事も表示されるようになる可能性がありますのでぜひやってみてください!人気ランキングのカスタマイズの方法をもっと見る時はコチラ!