WordPressで管理画面にログインしているユーザーのアクセス解析を省く


WordPressでWebサイト(ホームページ)やブログを構築していると、ニュース記事やブログ記事などの投稿を入力してプレビューや別のブラウザなどでWebページの確認した際に、投稿者自身のアクセスが反映されるのでGoogle Analyticsのアクセス解析に影響するかと思います。

たまにアクセス解析についてご相談を受けることがあるのですが、ページのアクセス状況が不安定で正確でないために改善策を考えるのに支障が出るので大変です。
ですのでWeb集客の改善を考えている企業は正確なアクセス解析をしていかなくてはいけません。

WordPressサイトの管理画面にログインしている管理者や編集者、投稿者等のアクセス解析のコントロールをするとなると、Google Analytics側からアクセスしている場所のIPアドレスを省くといった設定を考えるかと思います。
もちろんそれでも良いのですが、会社や自宅などがグローバルIPだとルータの再起動やプロバイダ側のメンテナンス等でIPアドレスが変わることがあるので、そのたびに設定を変更するといった作業が発生します。

またメディアを運営している場合ですと、外注でライターさんがあちこちに居る場合にその方たちの作業場所のIPアドレスも1つ1つ省くように設定しなくてはいけません。

正確なアクセス解析をする場合はものすごく作業が多くて非効率です。

そこで今回はわかりやすく、WordPressで管理画面にログインしているユーザーのアクセス解析を省く方法をご紹介します。


ログインしているユーザーのアクセスを省く


WordPressで管理画面にログインしているユーザーのアクセスを省くには、WordPressに用意されているis_user_logged_in()関数を使います。

is_user_logged_in()関数は、ユーザーがログイン中かどうかを判定する関数です。
管理画面にログイン中であればtrueを返し、ログインしていなければfalseを返します。

これを使って頭に「!」(エクスクラメーションマーク)を付けることで否定の意味になりますので、
「!is_user_logged_in()」とすることで、「ログイン中でなければ」ということになります。

 
簡単に書きますとこんな感じ。

<?php if ( !is_user_logged_in() ): ?>
//Googleアナリティクスのトラッキングコード
<?php endif; ?>



ユーザーがログイン中でなければ中の処理が実行されるので、記述したトラッキングコードが反映されてアクセス解析ができるということです。
なので管理画面にログイン中はアクセス解析されません。

記述例

<?php if ( !is_user_logged_in() ): ?>
<!-- Global Site Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxxx-x"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments)};
  gtag('js', new Date());
 
  gtag('config', 'UA-xxxxxxxx-x');
</script>
<!-- /Google Analytics -->
<?php endif; ?>



もしくは、別ファイル(analyticstracking.php)にしている場合は

<?php if ( !is_user_logged_in() ): ?>
<?php include_once("analyticstracking.php") ?>
<?php endif; ?>



このような感じで簡単にWordPressの管理画面にログインしているユーザーのアクセスを省くことができます。

これでより正確なアクセス解析をすることができますね。

現場からは以上です。