WordPressで記事ごとにアドセンス表示/非表示を切り替える方法

DSC_3711

アドセンスを利用する際には、広告を表示させてはいけない禁止コンテンツがあります。一番間違いやすいコンテンツは、お酒・アルコール類の販売・宣伝です。

美味しかった地ビールなどをブログ記事内で紹介しつつ、楽天市場アフィリエイトなどで商品リンクを張ってしまうと「ビールの販売・宣伝」となり、ポリシー違反となってしまいます。ちなみにワイン・シャンパンはOKです。

「知らなかった」では済まされない!全てのアドセンス利用者が知っておくべき「ポリシー違反」と対策方法

WordPressで、記事ごとにアドセンスを表示/非表示する方法を紹介します。

スポンサーリンク

力技で

今回紹介する方法はかなり力技です。

1)「noads」とネーミングしたカスタムフィールドを作る

2) テンプレート内に
[php]
<?php if(!$noads = get_post_meta($post->ID, ‘noads’, true)): ?>

アドセンスコード

<?php endif; ?>
[/php]

のようにif文で挟んだアドセンスコードをコピペする。

です。アドセンスを表示させたくない記事は、noadsのフィールドに「1」など、何でも良いので書き込みをするだけで、アドセンスが表示されなくなります。

プログラムのわかる人は、フィールドに代替広告のコードを入力できるようにすると、もっと便利になると思います。

記事中のアドセンス切り換え

記事中にアドセンスを表示させるために、Master Post Advertプラグインを利用している人は多いと思います。しかし、このプラグインを使うと、アドセンス表示の記事ごとの切り換えができません。

当ブログでは、プラグインは利用せず、function.phpに次のようなプログラムを書いて対応しています。

[php]
<?php
//記事中アドセンス

add_filter(‘the_content’, ‘adMoreReplace’);
function adMoreReplace($contentData) {
global $wp_query;

$adTags = <<< EOF
<div class="ad_middle">
<div style="margin-bottom:5px;">スポンサーリンク</div>

※アドセンスコード

</div>

EOF;

$post = $wp_query->get_queried_object();
$adsflag = get_post_meta($post->ID, ‘noads’, true);

if($adsflag) $adTags = ”;
$contentData = preg_replace(‘/<span id="more-[0-9]+"></span>/’, $adTags, $contentData);
$contentData = str_replace(‘<p></p>’, ”, $contentData);
$contentData = str_replace(‘<p><br />’, ‘<p>’, $contentData);

return $contentData;
}

?>

[/php]

とりあえず9JPさんで紹介されていたコードを流用させていただきました。ありがとうございます。

デフォルトではアドセンスが記事中に表示されますが、上述と同じく、noadsフォームに何かを書き込むと、表示されなくなります。ぜひお試しください。

▼▼▼▼

なお、先日の記事でも述べたように、記事中のアドセンスは「ラベル違反」をする可能性があります。直前に「スポンサーリンク」の文言を入れましょう。

今日のわかった

MovableytpeでもカスタムフィールドとMTタグのif文を使えば、簡単に実装することができます。

無料ブログサービスでは、こういった工夫はできないんですよね。

WordPress
スポンサーリンク
当ブログの記事に共感していただけたら、また読みに来ていただけると嬉しいです。読んでくれる方の数が多くなると、更新するヤル気に繋がります(^^)
フォロー、ブックマークしていただけると、ブログ更新を見逃しません
わかったブログ

コメント

タイトルとURLをコピーしました