カテゴリ別の人気記事を簡単に表示する方法(プラグインWordPress Popular Posts版)

シェアする

wordpress001

カテゴリ別に人気記事を表示する方法はいくつかありますが、WordPress Popular Postsを使って簡単に実現する方法を残しておきます。

<!-- カテゴリのおすすめ記事 ここから -->
<?php if (is_single() || is_category()) ?>
<?php
$cat_now = get_the_category(); /* 現在のカテゴリ-の取得 */
$cat_now = $cat_now[0];
$now_id = $cat_now->cat_ID; /* カテゴリID */
?>
<h4>カテゴリのおすすめ記事</h4>
<hr>
<?php if (function_exists('wpp_get_mostpopular')) {
$args = '
limit=5&
range=daily&
order_by=views&
thumbnail_width=100&
thumbnail_height=100&
cat="'.$now_id.'"&
wpp_start=""&
wpp_end=""&
post_start="<ul class="wpp-list">"&
post_end="</ul>"&
stats_comments=0&
stats_views=0';
wpp_get_mostpopular($args);
} ?>
<?php endif; ?>
<!-- カテゴリのおすすめ記事 ここまで -->

ソースのとおりですが、記事もしくはカテゴリに表示します。この引数の解説は、WordPress Popular Postsのプラグイン内のparametersにあります。

いくつか補足します。関係するのはサムネイルのサイズ(thumbnail_widthとthumbnail_height)、コメント(stats_comments)やアクセス数(stats_views)を表示するか否か。集計の期間(range)をどうするのか?
“daily”, “weekly”, “monthly”, “all”があります。post_startやpost_endなどのhtmlタグをどうするのかぐらいでしょう。

あと、なぜ、wpp-listというクラス名にしたいのか、といえば、実は理由があって、
WordPress Popular Postsでwpp-listが使われているためです。
他のクラス名にしても、ソースをみたら、勝手に上書きされてしまうようです。
最初は他の名前でやったのですが、後述するcssが効かなかったため。

テーマにより若干作りは違いますが、sidebar.phpの下記のコードの下あたりに突っ込んであげればいいでしょう、

<?php
		if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar( $name ) ) { ?>
<?php } ?>

リストタグの●が表示されてしまうことがあるため、cssを調整します。

ul.wpp-list{
	list-style-type:none;
	margin: 0px;
	padding:10px;
}

liではなくulに記述するのが、推奨されるやり方のようです。

この方法は、WordPress Popular Postsに依存しているため、プラグインをオフにすると、消えてしまいます。一度、オフにしても、オンにすると、もちろん戻ります。ただし、WordPress Popular Postsが使い勝手がいいし、簡単に作れるため、まあいいのではないか、と思います。(1番いいのは、WordPress Popular Postsのウィジェットあたりでカテゴリ別が対応してくれればいいのですけど…。)

サイドバーの上部に人気記事を、下部にカテゴリの人気記事をつければいい感じになりますよ。^^(あ。このサイトではないのですが、そうやって使っています。)

スポンサーリンク

シェアする

フォローする