【WordPress】閲覧数の多い順で人気記事一覧を出力するコード
WordPressで記事の一覧を出力する際に閲覧数の多い順に出力することで
人気の記事一覧をかんたんに作成するコードをご紹介します。
目次
事前準備
記事ごとに閲覧数を取得する必要がありますがプラグインを使うと用意に集計できます。
今回はWP-PostViewsを使ったサンプルをご紹介しますので、
事前にWordPressへ追加してください。
実際のコード
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'meta_key' => 'views',
'orderby' => 'meta_value_num'
);
$the_query = new WP_Query($args); if($the_query->have_posts()):
?>
<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
<!-- コンテンツ表示例 -->
<article>
<a href="<?php the_permalink(); ?>">
<h2><?php the_title(); ?></h2>
<?php the_post_thumbnail(); ?>
<?php ?>
</a>
</article>
<!-- コンテンツ表示例 -->
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<div>
<p>まだ記事はありません。</p>
</div>
<?php endif; ?>
実装についての解説と補足
PHP
サブループは指定した条件でDBから情報を取得して
一致する記事の回数だけ繰り返し処理を行ってくれます。
指定はarguments
の略で$args
という変数にしていますが、
それぞれの意味は以下のとおりです。
$args = array(
'post_type' => 'post',// 投稿タイプ(postは通常の投稿)
'posts_per_page' => 5,// 取得する記事の件数
'meta_key' => 'views',// WP-PostViewsが持っているDBのフィールドであるviews(閲覧数)をキーとして
'orderby' => 'meta_value_num'// ↑に基づき並べ替えを実施
);
今回の「閲覧数の多い順に並べ替えをする」という目的に対して、
WP-PostViewsの閲覧数を示すviews
をキーとして並べ替えを実施している点がポイントです。
ループ処理におけるその他指定条件についてはCodexを参考にしてみてください。
最後に
人気記事一覧を表示してくれるプラグインもありますが、
必要以上の機能があったり動作が重くなるなどのケースもあるため、
今回はシンプルに実装できる方法をご紹介しました。