カテゴリー
WordPress

AdSenseをプレビューや404で非表示にするショートコード

記事を書くときにプレビューを良く使うので、意味もなく広告が何回も表示されてしまう。これはあまり良い事ではないので非表示にした。ついでにAdSenseの広告掲載に関するポリシーをもう一度読み直し非表示にするページを考えてみた。

どこで非表示にするか考える

  1. ログインが必要なページはパスワードで保護されて”いない”ページを知らせればいい
  2. 404エラーページはダメ

ということなので、ログイン中もできるだけ一般ユーザーと同じ環境にしたいので表示させて、プレビューと404エラーページだけ非表示にすることにした。

ショートコードの作成

function.phpに下記のコードを記述する

function shortcode_ad_hide( $atts, $content = null ) {
	if ( ! is_preview() && ! is_404() ) {
		return $content;
	}
}
add_shortcode('ad_hide', 'shortcode_ad_hide');

テーマ内で使う場合の記述

<?php
	echo do_shortcode('[ad_hide]広告のコード[/ad_hide]');
?>

サイドバーのテキストウィジェットでショートコードを使用可能にしたい場合はfunction.phpに下記のコードを追記します。

add_filter('widget_text', 'do_shortcode');

これでどこでも広告コードを[ad_hide]で囲めばプレビューと404エラーページには表示されなくなります。