WordPressにはアクセス解析系のプラグインが星の数ほどあります。中でも人気記事の一覧を表示できる人気プラグイン「WordPress Popular Posts」を使っている方は多いのでは?せっかく「WordPress Popular Posts」プラグインを使って人気記事を表示しているのですから、この閲覧データを個別の投稿記事や固定ページで使わない手はない!ということで、今見ている投稿記事や固定ページに表示数(view数)を表示する方法を紹介します。
「WordPress Popular Posts」プラグインのView数を個別記事やページ内に表示するコード
この記事のタイトル下にある帯には通常「公開日」「更新日」「カテゴリーリンク」が表示されるのですが、ここのスペースに「WordPress Popular Posts」で蓄積されているデータから「本日の閲覧数」と「累計の閲覧数」を抽出して表示しています。実際に使っているコードは
<?php
if (function_exists('wpp_get_views'))
echo '本日'.wpp_get_views( get_the_ID(),daily).'/'; // Wp popular posts 本日view数
?>
<?php
if (function_exists('wpp_get_views'))
echo '累計'.wpp_get_views( get_the_ID()).'views'; // Wp popular posts 累計view数
?>
です。これは、
に掲載されていたテンプレートタグを少しカスタマイズして、本日分と累計両方の数字を表示することと日本語の文言を加えたものになります。ネタ元が「WordPress Popular Posts」のデータですからその他のプラグインやGoogle Analyticsなどのアクセス解析ツールで計算されるアクセス数(ページビュー数)とは差異がありますが、閲覧される方が記事を見たときの目安として、また、記事編集する際の目安として表示してはいかがでしょうか?
View数を個別記事やページ内に表示するコードに関する説明
基本となるのは累計値の表示に使っている
<?php
if (function_exists('wpp_get_views'))
echo '累計'.wpp_get_views( get_the_ID()).'views'; // Wp popular posts 累計view数
?>
です。このコード内の「累計」や「views」を適当な文字に修正すればそのまま使えます。
日付や期間を指定するには
コードの途中にある
wpp_get_views( get_the_ID())が累計値(プラグイン導入後からの累計)になるのですが、ここに日付期間の絞り込みを足せば任意の期間で表示が可能になります。つまり「,期間」を追加するだけです。
wpp_get_views( get_the_ID(),期間)
この期間は
1日(24時間)・・・daily
7日・・・weekly
30日・・・monthly
365日・・・yearly
をパラメーター値として指定します。1日に設定しているのに表示がおかしい・・・などと思うかもしれませんが、このプラグイン(ほとんどのプラグインがこういう形態ですが)の1日は過去24時間ということになっていますからここは仕方ないと思います。あくまでも目安として表示する分には問題ありませんし、閲覧する方から見てもどの期間なのか?というのはやっぱり目安ですから問題はないと思います。

コードの挿入方法
投稿テンプレートの中に記載する場合は「single.php」、固定ページの場合は「page.php」へコードを挿入します。
「外観」→「テーマ編集」からカスタマイズするテーマを選び、「single.php」または「page.php」を開くと、内容を表示するためのループ部分があります(下記のコード参照)。
の中の解説にもありますが、ループ内で使用しないと不具合が出ますので注意しましょう。
<?php
if (have_posts()) : // WordPress ループ
while (have_posts()) : the_post(); // 繰り返し処理開始 ?>
----------①-----------
<?php
endwhile; // 繰り返し処理終了
else : // ここから記事が見つからなかった場合の処理 ?>
①の部分にさまざまなコンテンツが書いてありますので表示したい場所にコードを挿入します。
※使っているテーマによってはより細分化するために「single.php」「page.php」内で別のphpファイルを読み込むようになっていて、その中にループがある場合もあります。
「Simplicity2」の例
当サイトで使用している「Simplicity2」テーマでは、投稿テンプレートはまさに※印の内容になっており、single.phpから呼び出される「entry-body」の中にループが存在します。固定ページテンプレート(page.php)はそのままファイルの中にループがあります。
ループの中身は固定ページテンプレート、投稿テンプレートとも同様です。当サイトのように、タイトル下の帯部分にview数を表示するには、
<p class="post-meta">
<?php get_template_part('datetime') //投稿日と更新日?>
----------②----------
<?php get_template_part('edit-link') //編集リンク?>
<?php wlw_edit_post_link('WLWで編集', '<span class="wlw-edit"><span class="fa fa-pencil-square-o fa-fw"></span>', '</span>'); ?>
</p>
の中の②へコードを挿入します。もちろん別の場所(記事の先頭や直後、タイトルの下など自由自在)に設置することも可能です。
バックグラウンドでも閲覧数(View数)を表示する方法がある
ここまでは閲覧ページ側(フロントエンド)でのView数表示方法を紹介しましたが、ここからは少し脱線して、管理画面側(バックエンド)の投稿一覧へ同様の表示を行う方法がありますのでついでに紹介します。
//管理画面での記事一覧カラムカスタマイズ
//WordPressPoplarPostの月間ビューカウントを表示する
function admin_posts_columns($columns) {
$columns['subtitle'] = "月ビュー";
return $columns;
}
function add_admincolumn($column_name, $post_id) {
if( $column_name == 'subtitle' ) {
echo wpp_get_views($post_id, 'monthly', true);
}
}
if ( function_exists('wpp_get_views') ) {
add_filter( 'manage_posts_columns', 'admin_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_admincolumn', 10, 2 );
}
上記コードをfunctions.phpへコピペすれば、投稿一覧に月間(30日間)のビュー数が表示されるようになります。
1つ注意点はテーマのキモであるfunctions.phpの中にコードを追加するため不具合があると管理画面や閲覧画面等すべての画面が表示不能になってしまうことです。バックアップを取るなどして万が一の場合にも対処できるようにしておいてください。もしもエラーが出て画面が真っ白になった場合には
【WordPress】テーマのfunctions.php編集に失敗して画面が真っ白になったときの対応
を参照ください。
これで、閲覧画面でも、バックエンドでもビュー数が表示されるので、どの記事や固定ページがよく読まれているのかが一目瞭然になります。更新すべき投稿や追加すべき記事ジャンルも見つけやすくなりますね。
「WordPress Popular Posts」プラグインについては
人気のある投稿や固定ページを表示できるプラグイン「WordPress Popular Posts」
を参照ください

