こんにちは、Webプログラマー兼ブロガーのwishigrowです。

wordpressの記事中にアドセンス広告を表示させるにはmoreタグで自動的に表示させるのがベストだと思います。

しかし問題があります。
アドセンスはお酒を宣伝したり販売したりするサイトでの広告表示を禁止しているのです。
(その他にもアダルトとか色々禁止事項がある。)

でも、お酒の話題も書きたいし、その際はアマゾンの商品リンクも掲載したい。

というわけで、moreタグにアドセンス広告を載せつつ、記事のカテゴリでアドセンス広告を表示・非表示を切り替える方法が分かったので記載しときます。

ソースコード

functions.phpに下記を追加します。

<?php

add_filter('the_content', 'adMoreReplace');

function adMoreReplace($contentData) {
if(in_category( 'カテゴリーID' ) ){

//空欄

}else{
$adTags = <<< EOF

//アドセンスのコードをコピペ

EOF;
}
    $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;
}
?>

ポイント

まず条件分岐のin_category()が間違えやすいですね。isと。
カテゴリーIDの調べ方は分かりますか?
管理画面のカテゴリーページの対象カテゴリにマウスを乗せると、左下にリンクが表示されて、中にある数字がIDです。

まとめ

これで心置きなく酒の記事が書けますね。
これが分からなかった時は、cssでdisplay:noneをしていました。
解決できて、とてもすっきりしています。

募集中のイベントはありません

投稿者: 石黒わらじろう

京都の古い民家で暮らしている。 趣味はランニングとブログと盆踊りを含むフォークダンス。 別名義で書いた小説は映画の原作として採用された。 自分で建てた小屋にて暮らしていたことがある強靭な狂人。 地球にも自分にも健康な生活がしたい。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です