【WordPress】WordPress Popular Postsを使ってカテゴリー別の人気ランキングを表示させる。

よろしければシェアお願いします!

【個人用メモ】
WordPress Popular Postsを使ってカテゴリー別の人気ランキングを表示させる。

ランキング
複数のカテゴリーで構成されている「ごちゃまぜブログ」は、テーマに縛られず書く事が出来る為、続けやすいというメリットがあります。しかし「特化型ブログ」と比べると明らかに離脱率が高く、回遊率をあげる事こそがPVを稼ぐ近道だと考えます。

そこで当ブログも「カテゴリー別の人気ランキング」を設置したいと考えるようになりました。これで行こう(-ω-)/

ほぼ目的を満たす解説サイト発見

解説・やり方説明は各所にあったのですが、当ブログではWordPress Popular PostsのCSSが悪さをして、解説通りの表示にならず。。。WPP Plus Widgetもいまいちでして・・・。

10サイト程探し回り、やっと理想通りの動きをする記事にたどり着きました。
WordPress Popular Postsで人気記事の表示とカスタマイズ方法(アフィリ課様の記事)
ただし、アフィリ課様の記事で

sidebar.phpからランキングを掲載したい箇所を探して設置

とあるように、ウィジェットで好きな場所に出す方法ではありませんでした。

プラグインで解決

調べていると直接PHPコードを掛けるプラグイン「PHP Code Widget」なる物があると知る。ウィジェットに追加すれば、ほぼ終わりですな。

・php code widgetを有効化

php code widget

・ウィジェットから「php code」を選択し、サイドバーに追加。

php code widget2

WordPress Popular Postsで人気記事の表示とカスタマイズ方法(アフィリ課様の記事)
でコピーさせて頂いたソースを張り付け。(バックアップは絶対!

  <!-- カテゴリー別人気記事の取得 -->
<?php if (is_category()) { ?>

<?php
$categoryname = single_cat_title('',false);
$categoryid = get_cat_ID($categoryname);
?>
<div class="widget popular-posts">
<h3 class="widget-title">「<?php echo $categoryname; ?>」カテゴリー別人気記事</h3>

<?php
 $wpp = array (
 'cat' => ''.$categoryid.'',
 'limit' => '5', 
 'range' => 'all',
 'order_by' => 'views',
 'post_type' => 'post',
 'stats_comments' => '0', 
 'stats_views' => '0', 
 'title_length' => '25', 
 'thumbnail_width' => '70',
 'thumbnail_height' => '70',
 'stats_category' => '0', 
 'wpp_start' => '<div id="popular-post"><ul class="wpp-list">',
 'wpp_end=' => '</ul></div>',
 'post_html' => '<li>{thumb} {title} <span class="post-stats">{stats}</span><div class="clear"> </div></li>',
); ?>
<?php wpp_get_mostpopular($wpp); ?>
</div>

<?php } elseif (is_single()) { ?>

<?php
wp_reset_query();
$cat = get_the_category();
$cat_id = $cat[0]->cat_ID;
$cat_name = $cat[0]->cat_name;?>

<div class="widget popular-posts">
<h3 class="widget-title">「<?php echo "$cat_name"; ?>」人気記事</h3>

<?php
 $wpp = array (
 'cat' => ''.$cat_id.'',
 'limit' => '5', 
 'range' => 'all',
 'order_by' => 'views',
 'post_type' => 'post',
 'stats_comments' => '0', 
 'stats_views' => '0', 
 'title_length' => '25', 
 'thumbnail_width' => '70',
 'thumbnail_height' => '70',
 'stats_category' => '0', 
 'wpp_start' => '<div id="popular-post"><ul class="wpp-list">',
 'wpp_end=' => '</ul></div>',
 'post_html' => '<li>{thumb} {title} <span class="post-stats">{stats}</span><div class="clear"> </div></li>',
); ?>
<?php wpp_get_mostpopular($wpp); ?>
</div>

<?php } else { ?>
<div class="widget popular-posts">
<h3 class="widget-title">人気記事</h3>
<?php
$cat_now = get_the_category();
$cat_now = $cat_now[0];
$now_id = $cat_now->cat_ID;
?>

<?php
 $wpp = array (
 'limit' => '5', 
 'range' => 'all',
 'order_by' => 'views',
 'post_type' => 'post',
 'stats_comments' => '0', 
 'stats_views' => '0', 
 'title_length' => '25', 
 'thumbnail_width' => '70',
 'thumbnail_height' => '70',
 'stats_category' => '0', 
 'wpp_start' => '<div id="popular-post"><ul class="wpp-list">',
 'wpp_end=' => '</ul></div>',
 'post_html' => '<li>{thumb} {title} <span class="post-stats">{stats}</span><div class="clear"> </div></li>',
); ?>
<?php wpp_get_mostpopular($wpp); ?>
</div>

<?php } ?>
  <!-- カテゴリー別人気記事の取得 -->

後はCSSを少しいじればOKです。
phpcode3

ちなみに、集計タイプ、記事数、ソート条件、コメント数の表示、観覧数の表示など細かい設定もできるので、細かい内容はアフィリ課様をご確認ください。とても分かりやすく素晴らしいサイトです。

やる時はバックアップはしっかり!自己責任でお願い致します(*´ω`)