WordPressのJetpackプラグインで特定のページだけ統計情報に集計されないようにスクリプトを読み込まないようにする方法

WordPressプラグイン「Jetpack」の統計情報は、PV数・検索キーワード・リファラーなどアクセス解析に役に立つデータを確認することができて便利ですね。

ところで、特定のページだけ統計情報に集計させないようにする必要があったので調べていたんですが、方法がありました。

特定のページだけJetpackの統計情報に集計させない方法

フォーラムに回答がありましたので、コードを参考にして少し書き加えました。書き加えた内容についてはjetpackが大好きなホホ氏のgistを参考にしました。

function remove_stats_action_hooks() {
 if ( is_page() && class_exists( 'jetpack' ) && Jetpack::is_module_active( 'stats' ) ) {
  remove_action( 'wp_footer', 'stats_footer', 101 );
  remove_action( 'wp_head', 'stats_hide_smile_css' );
  remove_action( 'wp_head', 'stats_add_shutdown_action' );
 }
}
add_action( 'template_redirect', 'remove_stats_action_hooks', 9999 );

コードがやっていること

「is_page()」は固定ページを表示しているかどうかを判別しています。

「class_exists(‘jetpack’)」は、そのまんまjetpackクラスが存在しているかどうかを判別しています。

「Jetpack::is_module_active( ‘stats’ )」は、jetpackの統計情報のモジュールが有効になっているかどうかを判別しています。

条件に合ったものは「remove_action」でヘッダー・フッター付近にある統計情報を集計するスクリプトを読み込まないようにしています。

また「template_redirect」は「投稿ページを表示する場合はsingle.phpのテンプレートファイルを使えばいいね」というように、表示するページに対応するテンプレートファイルを判別する前に何かの処理を挟むことができるフックですね。

なるほど・・・こうやるのか~。とても勉強になりました。

著者:bouya Imamura