プラグインを使わずにテーマ編集でコードを埋め込む
これまではWebサーバのアクセスログを眺めていた
wordpressのブログ開設後2か月でanalyticsコードを追加してみようと思う。
実際にはまだアクセス数が多くないので、不要かなとも思いますが、長いスパンで考えてみるとアクセス数の推移の移り変わりが確認できるので、早めに仕込んでおいてもよいかなと思った次第です。
Webエンジニアブログでのトラッキングコード埋め込み法 – 自分のアクセスを除外する
個人的に、google analyticsのフィルタ機能で自分のアクセスを除外するという手段は用いないようにしている。特に理由はなく、なんとなく個人的に
自分のアクセスの時はトラッキングコードそのものをHTMLに入れない
という方法でセルフアクセスを除外している。具体的な方法は以下のとおり
<?php if( $_SERVER['HTTP_USER_AGENT'] == "teza" ): ?> <?php elseif( strpos(getenv("REMOTE_ADDR"), "192.168.0") !== false ): ?> <?php elseif( strpos($_SERVER["SERVER_NAME"], ".dim5.net") !== false ): ?> <?php else: ?> <script> //analyticsコード </script> <?php endif; ?>
埋め込み場所は、定番かもしれないが、テーマファイルのfooter.php内のbodyタグ終了直前である。上のコードをbodyの直前に直で書いてみたので、wordpressのアップグレード時やテーマのアップデート時には気をつけたい。
上のコードのif文では、
3つの条件式 + else
という構成にしていて、条件式でセルフアクセス他を除外している。一つ目の条件は、
$_SERVER['HTTP_USER_AGENT'] == "teza"
teza(仮)というユーザーエージェントの場合にはトラッキングコードの埋め込みをスルーさせる処理。tezaとはテザリングのことでグローバルアクセス時はブラウザの
ユーザーエージェントスウィッチャー
chromeのua spoofer
などを利用して、ユーザーエージェントをtezaに偽装することで、セルフアクセスを除外している。なお、tezaとはテザリングのことである。
次の条件
strpos(getenv("REMOTE_ADDR"), "192.168.0") !== false
は、ローカルエリアネットワークからのアクセスであるかを判定する条件式になっている。つまり、ローカルネットワークからのアクセスは自アクセスとみなしてアクセス数をカウントさせない。
最後の条件式
strpos($_SERVER["SERVER_NAME"], ".dim5.net") !== false
この条件は、サブドメイン付きのURLの場合に結果が真となる条件式で、wordpressのマルチサイト機能を活用しているdim5.netでは、ルートドメイン以外のサブドメインURLではトラッキングコードを埋め込まないという処理が必要になる。正確には、サブドメインURLの場合には専用のanalyticsコードを埋め込む必要があるが、現時点ではサブドメインに対してはトラッキングしないということになる。
Webエンジニアブログでは、上のような感じでgoogle analyticsの自アクセスをカウントしないようにしている。