wordpressでショートコードを使って記事内でgoogle adsenseのスマホとPC表示を切り替える
2013.04.25.
wordpressでgoogleadosenseを利用する際にスマートフォンとパソコンで表示するバナーを変える方法とそれをショートコードにして投稿内で利用できるようにします。
[adsense]
やり方
テーマテンプレートのfunctions.phpに以下のコードをふたつ追加してみました。
function is_mobile(){ $useragents = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android', // 1.5+ Android 'dream', // Pre 1.5 Android 'CUPCAKE', // 1.5+ Android 'blackberry9500', // Storm 'blackberry9530', // Storm 'blackberry9520', // Storm v2 'blackberry9550', // Storm v2 'blackberry9800', // Torch 'webOS', // Palm Pre Experimental 'incognito', // Other iPhone browser 'webmate' // Other iPhone browser ); $pattern = '/'.implode('|', $useragents).'/i'; return preg_match($pattern, $_SERVER['HTTP_USER_AGENT']); }
上記のコードでユーザーエージェントを判別する引数を渡します。
function 任意の引数A() { if(is_mobile()) { return ' (スマートフォン用のadsenseコード) '; } else { return ' (PC用のadsenseコード) '; } } add_shortcode('ショートコード名', '任意の引数A');
続いて渡されたis_mobileという引数を利用してgoogle adsenseのコードの表示サイズを分岐させます。
- シングルクォーテーション内がショートコードに差し込まれるコードになるので重要です。divなどをここですでに付けてしまってもいいかもしれません。
- 任意の引数Aの部分はどんな名前でもかまいません。二箇所とも同じ名前にしてください
- ショートコード名の部分に入れたコードを[ ]で囲むことで投稿内でadsenseが使えるようになります(例:[adsensecode])
あとはもう記事内の好きなところにショートコードで差し込んじゃってください。
少しずつphpでのwordpressカスタマイズに慣れてきたので今回やってみたのですが、もっとスマートに済ませることもできると思います。ご存知のかたは教えてくださると勉強になるのでありがたいです!
参考にさせて頂いた記事
レスポンシブデザインのWordPressユーザ注目。スマホ閲覧時に記事中のAdsense広告をはみ出させない方法 - Handmaid Future!さん