2015/12/16
【WordPress】広告等バナーをカテゴリ毎に条件分岐して掲載する方法

以前に、こんな記事を書きまして。
【WordPress】記事内のmoreタグを広告等バナーに置換する方法
その記事にあるように実装していたワケですが、これ、カテゴリで条件分岐して、そのカテゴリに合ったバナーを掲載した方が良いんじゃね?と思い、ちょっと試してみました。
以下、その備忘録です。
広告等バナーをカテゴリ毎に条件分岐して掲載する方法
以下は記事内のmoreタグを置換する場合です。
functions.phpに記述します。
add_filter('the_content', 'adMoreReplace');
function adMoreReplace($contentData) {
$_categories = get_the_category();
foreach ($_categories as $_category) {
if($_category->cat_name == "カテゴリA"){
$adTags = <<< EOF
//カテゴリAに表示させたい内容をここに記載
EOF;
}
else if($_category->cat_name == "カテゴリB"){
$adTags = <<< EOF
//カテゴリBに表示させたい内容をここに記載
EOF;
}
else{
$adTags = <<< EOF
//その他のカテゴリに表示させたい内容をここに記載
EOF;
}
break;
}
$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;
}
上記の様に条件分岐させて、コメントアウト部分にGoogle AdSense等、任意のコードを記述します。
あとがき
ひとまず意図した動きをしてくれたので良かったですが、登録カテゴリが複数ある場合は、どちらを優先させるか悩みどころですね。
それについては、また記事にしたいなと思います。














