WordPressで管理者のみが参照できる簡易的なアクセスカウンターを作成する

WordPress個別サポート
アクセスカウンターを設置するためのプラグインはいくつもあるので、本格的な話は以下の投稿を参考にしてください。

WordPressサイトのアクセス解析(StatPress Reloadedプラグイン)

ここでは、アクセスカウンターの作成を例に、いくつかの課題に役立つコードを紹介する主旨で話を進めていきます。

アクセスカウンターの作成というと、カウンター値はどこに保存すれば良いか(テキストファイル?)、また、一部のユーザーのみにカウンター値を見せたい場合はどうすれば良いか(カウンター値を見るためだけにパスワード付きのページを作る?)などの細かい課題が浮かんできます。

簡易的なアクセスカウンターの作成方法を紹介しますが、次のようなコンテンツや処理を組み込みたいときにも参考にしてください。

  • WordPressデータベースに一時的にコンテンツを格納する方法
  • ログイン中のユーザーのみに見せたいコンテンツの作成方法

簡易的なアクセスカウンターをfooter.phpに作成する方法を紹介します。テンプレートのfooter.phpを開いて、適当なところに次のコードを入力します。

<?php
// アクセスカウンターの更新
$counter = get_option('counter');
$counter = intval($counter) + 1;
update_option('counter', $counter);
?>
<?php if(is_user_logged_in()) : ?>
現在までのアクセス数:<?php echo $counter; ?>
<?php endif ?>

上部がカウンター値の更新、下部がカウンター値の表示です。

使われている命令を紹介します。

  • $counter = get_option('counter') --- 「counter」という名前のオプション項目の値を取得して$counterに格納します。
  • intval($counter) + 1 --- カウンターに1を加算します。
  • update_option('counter', $counter); --- WordPressデータベースの「counter」というオプション項目を更新します。
  • if(is_user_logged_in()) --- ログイン中のユーザーに限って … します。
  • echo $counter; --- カウンター値を画面に表示します。
update_optionは、値をどこかに一時的に格納しておきたいときに便利です。ただし、既存のオプション項目名と同じ名前で値を設定すると、その項目は上書きされるので、十分に注意してください。たとえば、次のように記述すると、サイトのキャッチフレーズが上書きされます。

update_option('blogdescription', $counter);

アクセスカウンターのコードを記述すると、ログイン中のユーザーのみアクセスカウンターの数値を確認できるようになります。

アクセスカウンターが表示される
アクセスカウンターが表示される

ログインしていないユーザーには、アクセスカウンターは表示されません。

一般ユーザーにはアクセスカウンターは非表示
一般ユーザーにはアクセスカウンターは非表示

ここで紹介したのは普通のアクセスカウンターですが、ログイン中のユーザーのみに見せたいコンテンツの作成方法や、WordPressデータベースに一時的に何らかの値を格納しておきたいときにも参考にしてください。