2022年6月14日
WordPressで人気記事を表示させるプラグインの定番といえば『WordPress Popular Posts』
弊社複数運営しているWebメディアでも重宝するプラグインのため、インストールしております。
ただ、このプラグイン現時点(2022年6月14日現在)更新が5ヶ月とまっているプラグイン。
脆弱性などはありませんが、WPコアがバージョンアップされ続ける上で、半年以上アップデートされていないと動作表示など万が一、何かが起こる可能性も少なからずあります。
無理矢理このプラグインから変えましょう。というわけではなく、望ましいレイアウトが出ない。しっかりと保守管理を行いたい。というサイトの場合は以下コードをご確認ください。
// 記事PV取得
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.' Views';
}
// 記事PVカウント
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);
「get_header()」記述以降の任意箇所に追加してください。
<?php
// 記事のビュー数を更新(ログイン中・クローラーは除外)
if (!is_user_logged_in() && !is_robots()) {
setPostViews(get_the_ID());
}
?>
sidebar.phpではなくとも、表示をしたい場所に以下のコードを貼り付けしてください。
今回はサイドバーを例とするため、「sidebar.php」に追加します。
<div>
<h4>よく読まれている記事</h4>
<hr>
<?php
$args = array(
'post_type' => 'post',
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'posts_per_page' => 5,
'order'=>'DESC',
);
$the_view_query = new WP_Query( $args );
if ($the_view_query->have_posts()):
while($the_view_query->have_posts()): $the_view_query->the_post();
?>
<!-- サムネイルの表示 -->
<div>
<ahref="<?php echo get_permalink(); ?>">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'post-thumbnail'); } ?>
</a>
</div>
<!-- タイトル表示 -->
<div>
<ahref="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<p><?php echo getPostViews($post->ID); ?></p>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_postdata(); ?>
</div>
表示件数やレイアウト構成はCSSで調整ください。
他にも出力したい内容がある場合はコードを追加してください。
リビジョン株式会社ではWordPressのローカライズ化やスポット改修、WordPressに関わる全ての業務に精通しております。ご相談はお気軽にフォームよりご連絡ください。
Webサイトリニューアルから新規ホームページ制作・運営・保守まで、目的達成を実現いたします。
各種Webサイト・ECサイト制作、広告代行に関するご相談、ご質問などお気軽にお問合せ下さい。
Tel : 03-5324-2318 / Email : info@reinc.jp