こんにちは、JAGA(ja_gaimopotato)です。
久しぶりにAdsenseの配置を少し触ってみようと思いました。
読みにくくならないように気をつけながら、どのような配置が良いか色々試したいなぁと考えています。
個人的には気にならない記事の真ん中ぐらいにある広告。
これを実際にやってみる方法を調べました。
プラグインで解決する方法
プラグインでの解決方法もいくつかあるようです。
Quick AdsenseというプラグインやMaster Post Advertというプラグインです。
Quick Adsense – Google AdSense 広告コードを記事やサイドバーに挿入できるWordPressプラグイン | ネタワン
ただ、これらはモバイルとPCの判定にPHPを読み込ませることが出来ないみたいでした。
function.phpに直接コード書く方法
プラグインのソースコードを改変することで解決は出来そうでしたけど、ちゃんとやろうと思うと結局コードを書く必要があります。
ですので、function.phpに直接コードを書いてみました。
参考にしたのは、下記サイトです。
WordPressの“more”部分にアドセンスを入れる方法 – アドセンス実践会
WordPressスマフォページの「記事中」にアドセンスを表示する方法とメリット
で、こちらのコードを参考にしながらwp_is_mobile関数でモバイルを判定して、モバイル用とPC用のコードを使い分ける分岐を加えました。
add_filter('the_content', 'adMoreReplace');
function adMoreReplace($contentData) {
$mobileAd = <<< EOF
// ここにモバイル用のアドセンスのコード
EOF;
$defaultAd = <<< EOF
// ここにPC用のアドセンスのコード
EOF;
if ( wp_is_mobile() ) {
$contentData = preg_replace('/<span id="more-[0-9]+"></span>/', $mobileAd, $contentData);
} else {
$contentData = preg_replace('/<span id="more-[0-9]+"></span>/', $defaultAd, $contentData);
}
$contentData = str_replace('<p></p>', '', $contentData);
$contentData = str_replace('<p><br />', '<p>', $contentData);
return $contentData;
}
これで、上手く運用できそうです。
※ぼくは、モバイルの場合だけ記事の中に広告を表示するようにしています。