ワードプレスのfunction.phpより、h2の見出しの偶数番目の前にアドセンスの広告を表示させたいと考えています。
現在は、(a*)のコードのように記載しており、できれば偶数番目を判別して、コードをスッキリさせたいのです。
if($number%2==0) {
偶数;}
のような判別を使用することは分かるのですが、具体的にどうコードを記載したらいいのか分かりません。
どなたかご教示いただけますでしょうか。
(a*)
function is_smartphone(){ $useragents = array( 'iPhone', // iPhone 'iPod', // iPod touch 'Android.*Mobile', // 1.5+ Android *** Only mobile 'Windows.*Phone', // *** Windows Phone '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']); } //1番目と4番目と6番目のh2見出し手前にアドセンスを表示 function add_ad_before_h2_for_3times($the_content) { //最初に表示させるアドセンス $ad0 = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- First --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5882880574861259" data-ad-slot="2714275289" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> EOF; //2番目に表示させるアドセンス $ad1 = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 坊主下部 --> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-5882880574861259" data-ad-slot="9395757451"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> EOF; //3番目に表示させるアドセンス $ad2 = <<< EOF <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-5882880574861259" data-ad-slot="4782946216"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> EOF; //投稿ページ if ( is_single() ) { //H2見出しのパターン $h2 = '/^<h2.*?>.+?</h2>$/im'; //H2見出しが本文中にあるかどうか if ( preg_match_all( $h2, $the_content, $h2s )) { //チェックは不要と思うけど一応 if ( $h2s[0] ) { //1番目のH2見出し手前にad1を挿入 if ( $h2s[0][0] ) { if( is_smartphone() ){ $the_content = str_replace($h2s[0][0], $ad0.$h2s[0][0], $the_content); } else{ $the_content = str_replace($h2s[0][0], $ad0.$h2s[0][0], $the_content); } } //4番目のH2見出し手前にad2を挿入 if ( $h2s[0][3] ) { if( is_smartphone() ){ $the_content = str_replace($h2s[0][3], $ad2.$h2s[0][3], $the_content); } else{ $the_content = str_replace($h2s[0][3], $ad2.$h2s[0][3], $the_content); } } //6番目のH2見出し手前にad2を挿入 if ( $h2s[0][5] ) { if( is_smartphone() ){ $the_content = str_replace($h2s[0][5], $ad2.$h2s[0][5], $the_content); } else{ $the_content = str_replace($h2s[0][5], $ad2.$h2s[0][5], $the_content); } } } } } return $the_content; } add_filter('the_content','add_ad_before_h2_for_3times');
回答1件
あなたの回答
tips
プレビュー