[PR]

【WordPress】WordPress Popular Postsを使ってカテゴリごとの人気記事を自動でサイドバーに表示させる

[PR]

前回「Wordpress Popular Posts」というプラグインを紹介しましたが、これをカスタマイズすることで、各記事のカテゴリごとの人気記事をサイドバーに表示させることができます。

wordpressカスタマイズ系の記事を検索で辿り着いた人に、ガジェットの人気記事の一覧を見せるよりは、同じカテゴリの記事を見せた方がクリック率も上がりやすいでしょうし、ユーザーさんから見ても、利便性が高くなるでしょうしね。

WordPress Popular Postsの導入は前回の記事をご覧下さい。
サイドバーに人気記事を自動表示するプラグイン、Wordpress Popular Posts

[PR]

このカスタマイズ方法は、サイドバーに直接カテゴリ別の人気記事を呼び出すphpコードを記述します。

ですので、まずはサイドバーにPHPを欠けるようにする以下のプラグインをインストールします。
WordPress › Exec-PHP « WordPress Plugins

ほかにも同タイプのプラグインはありますのでお好みでいいと思います。とりあえず上のExec-PHPでは動作確認できてます。

そしてテーマの編集からfunctions.phpに以下のコードを挿入。(参照:ワードプレスのサイドバーにカテゴリ別人気記事を表示する | PLUS
[php]//wp_head()実行時にget_current_category()を実行
add_action(‘wp_head’, ‘get_current_category’);

// 現在のカテゴリを取得
function get_current_category()
{
global $_curcat;
$cate = null;
if( is_category() ) {
//カテゴリー表示だったら
//$now_cate = get_query_var(‘cat’);
//$cate = get_category($now_cate);

$cat_now = get_the_category();
// 親の情報を$cat_nowに格納
$cate = $cat_now[0];

} else if (is_single() ) {
//シングルページ表示だったら
$cates = get_the_category();
$i = 0;
$use_category = 0;
foreach ($cates as $cate) {
//未分類を除外した配列の一番初めのカテゴリを選択
if($cate->category_parent > 0 && $use_category == 0) {
$use_category = $i;
}
$i++;
}
$cate = $cates[$use_category];
}
//カテゴリーのオブジェクトごと保持
$_curcat = $cate;
return $cate;
}[/php]

Exec-PHPがインストールできたら、以下のコードをサイドバーのテキストウィジェットに記述します。
[php]<div class="pop">
<?php
global $_curcat;
$caca=$_curcat->cat_ID;

if (is_home() && $caca=="") {
get_mostpopular(‘range=weekly&order_by=views&limit=10&stats_comments=0& stats_views=0&pages=0&thumbnail_width=300&thumbnail_height=180&thumbnail_selection=usergenerated’);
}else{
get_mostpopular(‘range=weekly&order_by=views&cat=’.$caca.’&limit=10&stats_comments=0& stats_views=0&pages=0&thumbnail_width=300&thumbnail_height=180&thumbnail_selection=usergenerated’);
}
?>
</div>[/php]

自分のサイドバーのサイズに合わせて、humbnail_width=300&thumbnail_height=180の部分の数字を変更するなどして調節しましょう。
記事の表示数は「limit=10」の部分ですね。今10記事表示するようにしています。

「range=weekly」は7日間の合計を集計して人気記事を表示する指定。daily、weekly、monthly、allの4つgは利用できます。
「order_by=views」はビューの数で人気記事を判定。viewsの他、comments、avgなんかも使えます。

詳しいパラメータは以下のURLが詳しいです。
【ブログの人気記事をどこにでも表示することができる】「wordpress popular posts」のテンプレートタグを使ってトップページに人気記事表示

僕はサイドバーのサイズは300pxにしているのでwidthは300にしています。
Wordpress Popular Postsはそのままでも大変便利ですが、こうしてちょっとカスタマイズしてあげるとさらに便利になりますね。

WordPressデザインブック3.x対応
エビスコム
ソシム
売り上げランキング: 13,172