記事のPVを取得・表示

PVをカスタムフィールドに保存する関数をfunctions.phpに記載

function set_post_views($post_id){
  
  // 投稿記事のID($post_id)から カスタムフィールドのデータ("post_views_count")を取得する
  $count = get_post_meta($post_id, "post_views_count", true);
  
  // "post_views_count"が空であれば、カスタムフィールドの情報を削除してから 0という値を入れる
  if( $count == '' ) {
    $count = 0;
    delete_post_meta($post_id, "post_views_count");
    add_post_meta($post_id, "post_views_count", '0');
  } else {
    $count++;
    update_post_meta($post_id, "post_views_count", $count);
  }
}

single.phpで関数を呼び出す

<?php set_post_views(get_the_ID()); ?>

single.phpでPVを表示

function get_post_views($post_id){
  // 投稿記事のID($post_id)から カスタムフィールドのデータ("post_views_count")を取得する
  $count = get_post_meta($post_id, 'post_views_count', true);
  
  // "post_views_count"が空であれば、カスタムフィールドの情報を削除してから 0という値を入れる
  if($count == ''){
    delete_post_meta($post_id, 'post_views_count');
    add_post_meta($post_id, 'post_views_count', '0');
    return '0';
  }
  
  return $count;
}

$pv = get_post_views(get_the_ID());
echo '現在のPV数:' . $pv;

補足:人気記事ランキング(全期間)

特定の期間のランキングを作りたい場合はGoogleAnalyticsAPIを使うこと

<main>
<h1 style='font-size:20px; margin:20px; text-align:center;'>ランキング(仮)</h1>
<?php
		function get_post_views($post_id) {
			$count = get_post_meta($post_id, 'post_views_count', true);
			if( $count == '' ) {
				delete_post_meta($post_id, 'post_views_count');
				add_post_meta($post_id, 'post_views_count', '0');
				return '0';
			}
			return $count;
		}
?>
<?php $i = 1; ?>
<?php
	$arg = array(
		'post_type' => 'post',
		'posts_per_page' => 20,
		'order' => 'DESC',
		'orderby' => 'meta_value_num',
		'meta_key' => 'post_views_count' 
	);
	$wp_query = new WP_Query($arg);
	if( $wp_query->have_posts() ):
	while( $wp_query->have_posts() ):
	$wp_query->the_post();
?>
	  

      <article style='align-items:center; display:flex; margin:10px;'>
	  	<div style='font-weight:700; width:10%;'><?php echo $i; ?>位</div>
		<a style='display:block; width:45%;' href="<?php the_permalink() ?>"><?php if (has_post_thumbnail()) { the_post_thumbnail(); } ?></a>
		<div style='width:45%;'>
			<h2 style='margin:5px 10px; overflow:hidden;'><?php the_title(); ?></h2>
			<time style='display:block; margin:0 10px;' datetime="<?php the_modified_date( 'Y-m-d' ); ?>"><?php the_modified_date( 'Y年m月d日' ); ?></time>
			<span style='margin-left:10px;'><?php echo get_post_views(get_the_ID()); ?> 回視聴</span>
		</div>
      </article>
	  
	  
<?php
$i++;
endwhile;
endif;
wp_reset_postdata();
?>
</main>