【WordPress】プラグインなし!functions.phpだけで管理画面にアクセス数(PV)を表示する方法[:]
WordPressでサイト運営をしていると、
- 「今日どれくらいアクセスがあったか?」
- 「ざっくりでいいから管理画面ですぐ見たい」
- 「プラグインを増やしたくない」
と思うことはありませんか?
実は、プラグインを使わずにfunctions.php に少しコードを書くだけで、
管理画面(ダッシュボード)にアクセス数(PV)を表示できます。
この記事では、
- プラグインなし
- functions.phpにコピペするだけ
- 管理画面に「今日のPV」「累計PV」を表示
という シンプルで実務向きな方法 を解説します。
この記事でできること
この記事の方法を使うと、次のようなことができます。
- プラグイン不要
- functions.php に直接記述
- 管理画面のダッシュボードに
- 今日のアクセス数(PV)
- 累計アクセス数(PV)
- 管理者のみカウントリセット可能
※ Google Analytics(GA4)の代わりではなく、
「ざっくり確認用の簡易PV」 として使う想定です。
なぜプラグインを使わないのか?
アクセス解析系プラグインは便利ですが、次のようなデメリットもあります。
- プラグインが増えるほど管理コストが増える
- 管理画面が重くなる
- テーマ切り替えや環境差分で不具合が出やすい
その点、functions.php に直接書く方法は、
- 軽量
- 自分で中身を把握できる
- 不要になればすぐ削除できる
というメリットがあります。
実装の仕組み(ざっくり)
今回の仕組みはとてもシンプルです。
- ページが表示されたときにPVをカウント
- WordPressの
optionに数値を保存 - 管理画面ダッシュボードにウィジェットとして表示
データベース構造をいじる必要もありません。
実装手順
① functions.php を開く
以下のいずれかを開きます。
- 使用中テーマの
functions.php - 子テーマの
functions.php(推奨)
② 下記コードをそのまま貼り付ける
<?php
/* =========================================================
* 簡易アクセスカウンター(PV)
* functions.php 用
* ======================================================= */
if (!defined('ABSPATH')) exit;
/* =========================
* 設定
* ======================= */
// ログイン中ユーザーをカウントしない
define('KZ_PV_EXCLUDE_LOGGED_IN', true);
/* =========================
* アクセスカウント
* ======================= */
add_action('template_redirect', function () {
// 管理画面・API系を除外
if (is_admin()) return;
if (defined('REST_REQUEST') && REST_REQUEST) return;
if (wp_doing_ajax()) return;
if (is_preview() || is_feed()) return;
// ログインユーザー除外
if (KZ_PV_EXCLUDE_LOGGED_IN && is_user_logged_in()) return;
$today = wp_date('Y-m-d');
$opt_total = 'kz_pv_total';
$opt_today = 'kz_pv_today';
$opt_date = 'kz_pv_today_date';
$total = (int) get_option($opt_total, 0);
$today_pv = (int) get_option($opt_today, 0);
$saved_day = get_option($opt_date);
// 日付が変わったら今日のPVをリセット
if ($saved_day !== $today) {
$today_pv = 0;
update_option($opt_today, 0, false);
update_option($opt_date, $today, false);
}
// カウント
update_option($opt_total, $total + 1, false);
update_option($opt_today, $today_pv + 1, false);
}, 20);
/* =========================
* ダッシュボードウィジェット
* ======================= */
add_action('wp_dashboard_setup', function () {
wp_add_dashboard_widget(
'kz_pv_widget',
'アクセス数(簡易PV)',
function () {
$total = (int) get_option('kz_pv_total', 0);
$today = (int) get_option('kz_pv_today', 0);
$date = get_option('kz_pv_today_date', wp_date('Y-m-d'));
?>
<div style="line-height:1.8;">
<p>
<strong>今日(<?php echo esc_html($date); ?>)</strong><br>
<span style="font-size:24px;font-weight:bold;">
<?php echo number_format_i18n($today); ?>
</span> PV
</p>
<p>
<strong>累計</strong><br>
<?php echo number_format_i18n($total); ?> PV
</p>
<?php if (current_user_can('manage_options')) : ?>
<hr>
<a class="button" href="<?php
echo esc_url(
wp_nonce_url(
admin_url('index.php?kz_pv_reset=1'),
'kz_pv_reset'
)
);
?>">カウントをリセット</a>
<?php endif; ?>
</div>
<?php
}
);
});
/* =========================
* リセット処理
* ======================= */
add_action('admin_init', function () {
if (!current_user_can('manage_options')) return;
if (empty($_GET['kz_pv_reset'])) return;
if (!check_admin_referer('kz_pv_reset')) return;
update_option('kz_pv_total', 0, false);
update_option('kz_pv_today', 0, false);
update_option('kz_pv_today_date', wp_date('Y-m-d'), false);
wp_safe_redirect(admin_url('index.php'));
exit;
});
③ 表示される場所
管理画面 → ダッシュボード
そこに
「アクセス数(簡易PV)」 というウィジェットが表示されます。
- 今日のPV
- 累計PV
- 管理者のみリセットボタン
という構成です。
注意点(必ず読んでください)
キャッシュ系プラグインを使っている場合
以下を使用していると、PVが正確に増えないことがあります。
- LiteSpeed Cache
- WP Rocket
- Cloudflare
- サーバー側フルページキャッシュ
これは、PHPが毎回実行されないためです。
👉
正確な解析が必要な場合は、
- GA4の数値を管理画面に表示
- JavaScript + AJAXでカウント
などの方法がおすすめです。
どんな人におすすめか?
この方法は、次のような方に向いています。
- プラグインを極力使いたくない
- 管理画面で「今日どれくらい見られてるか」だけ知りたい
- 自分やクライアント用の簡易確認用途
- 開発・検証環境でのアクセスチェック
まとめ
WordPressは、ちょっとした工夫で
管理画面をかなり便利にカスタマイズできます。
今回のように、
- functions.phpに直接書く
- 必要最低限の機能だけ作る
という考え方は、
制作・保守の現場ではかなり使えます。


