2020/05/31 20:42
[Wordpress]それぞれの記事の閲覧数をカウントしてランキング表示させる方法(プラグイン不要)
「よく読まれる記事」として人気のある記事はさらに訪問者にアピールしていきたいですよね。
今回は「閲覧数をカウントして、ランキング表示」させる方法をプラグイン無しで実装する方法をご紹介します。
実際の閲覧数も取得して表示ができますので便利に使えます。
「functions.php」に記述
閲覧数を取得する為の関数を定義します。
記述する先は毎度おなじみの「functions.php」ファイルです。
【functions.php】
<?php
// 人気記事出力用関数
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 View";
}
return $count;
}
// 記事viewカウント用関数
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
?>
出力側のコード
実際の表示は投稿記事を出力する時のループの書き方みたいな感じですね。
【人気記事順に5つ出力する記述例】
<?php
// views post metaで記事のPV情報を取得する
setPostViews(get_the_ID());
$args = array(
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 5 // ← 5件取得
);
// WP_Queryによるループ
$query = new WP_Query($args);
if ($query->have_posts()) :
while ($query->have_posts()) :
$query->the_post();
?>
【ここに表示させる内容等】
<?php
endwhile;
endif;
wp_reset_postdata();
?>
だいたいこんな感じでよさそうです。
後は実際の「閲覧数」を表示させたい時は下記のコードで呼び出す事ができます。
【閲覧数の表示】
<!-- 記事閲覧回数表示 -->
<?php echo getPostViews(get_the_ID());?>
プラグインも不要でとても簡単に実装できますので、オススメです。
上手に活用して、今後の投稿への参考としても活かせると思います。
では現場から以上です!
3379