当サイトの分家「旅行と食べ歩き」のGoogleアドセンスを自動広告のみにしてみたら、「どうしてそこに広告を入れるのか?」といった場所で表示されるので、自動広告はやめて「文中の見出し<h2>
の直前に広告を配置」してみました。
まずはアドセンス広告を作成
Googleアドセンス→広告→「広告ユニットごと」から作成します。
おすすめは「ディスプレイ広告」もしくは「記事内広告」。
文中の見出しh2の直前に広告を配置
記事内広告を手動で全ての箇所に配置するのは大変なので、「functions.php」にコードを書いて表示させました。
当サイトでは「2番目のh2」「4番目のh2」「6番目のh2」の前に配置してあります。
//h2見出し前に広告を設置 function add_ad_before_h2_for_3times($the_content) { $ad = <<< EOF //ここにアドセンスコードを挿入 EOF; if ( is_single() ) { $h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン if ( preg_match_all( $h2, $the_content, $h2s )) { if ( $h2s[0] ) { if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content); } if ( $h2s[0][3] ) {//4番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][3], $ad.$h2s[0][3], $the_content); } if ( $h2s[0][5] ) {//6番目のH2見出し手前に広告を挿入 $the_content = str_replace($h2s[0][5], $ad.$h2s[0][5], $the_content); } } } } return $the_content; } add_filter('the_content','add_ad_before_h2_for_3times');
Cocoon開発者の寝ログさんのコードを参考にさせていただきました。
テーマ:ルクセリタスでも問題なく表示されています。
ただし、PHP 8の場合はエラーになるので対策が必要です。