WordPressでmoreタグの部分にモバイルとPCを判定してAdsenseのタグを挿入する。

こんにちは、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;
}

これで、上手く運用できそうです。

※ぼくは、モバイルの場合だけ記事の中に広告を表示するようにしています。

これからも更新を続けていきますので、Feedlyへの登録をお願いします!

follow us in feedly

コメントを残す

メールアドレスが公開されることはありません。