ガジェレポ!

京都在住の中年サラリーマンブロガー。 Mac、iPhone、ゲームにアプリなどなど興味をもったガジェットの情報をなんでもレポート。

Stinger3子テーマ「CANDY CRAZY」で広告を記事中に挿入する方法。

f:id:gadgerepo:20151115035437j:plain

以前、コチラの記事でアドセンス広告を記事下に2つ並べて表示する方法にチャレンジしましたが、他にも効果的なアドセンス広告の表示方法として、記事の本文中に広告を挿入する手段があります。

つい先日、 寝ログさんがコチラの記事を公開されていましたのでさっそく筆者も参考にさせていただきました。

【追記】 その後、当ブログは WordPressテーマ「Stinger3」から「Simplicity」に変更、そして「はてなブログ」へと移行しました。

ご了承くださいm(__)m

nelog.jp

〜WordPressカスタマイズ備忘録 その5〜

詳しくは寝ログさんのサイトでわかりやすい解説を見ていただいたほうがよいと思います。 ただ、筆者の状況下(テーマStinger3で子テーマCANDY CRAZY使用)ではそのままだとエラーが出てうまくいきませんでしたので、記述を少し変更しました。 また、筆者は記事トップにH2見出しを多用しているので、寝ログさんのH2見出しの前に広告が挿入される方法だと広告が表示されません。これから書く記事はともかく、過去の記事にこのカスタマイズが反映されないのは痛いので、筆者はH3見出しの前に表示することにしました。 その手順を、自分への備忘録を兼ねて解説します。

H3見出しの前にアドセンス広告を挿入

functions.phpを編集します。バックアップは必ずとっておきましょう。

functions.phpの一番最後、

?>

の前に次のコードを追加します。

寝ログさんの解説では“H2”となっている部分をすべて“H3”とし、一部コードを削除しました。

挿入するアドセンスは、スマホ表示の時はみ出さないように、300×250サイズにしました。

//最初のH3見出し手前に広告を挿入
function add_ads_before_1st_h3($the_content) {
    $ads = <<< EOF
<p>スポンサードリンク</p>
//ここからアドセンスのタグを記述//
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:inline-block;width:300px;height:250px"
     data-ad-client="ca-pub-****************"
     data-ad-slot="**********"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
//アドセンスのタグを記述ここまで//
EOF;
    $h3 = '/<h3.*?>/i';//H3見出しのパターン
    if ( preg_match( $h3, $the_content, $h3s )) {//H3見出しが本文中にあるかどうか
      $the_content  = preg_replace($h3, $ads.$h3s[0], $the_content, 1);//最初のH3を置換
  }
  return $the_content;
}
add_filter('the_content','add_ads_before_1st_h3')

これで、記事中の最初のH3見出しの前にアドセンス広告が表示されるはずです。

Googleアドセンスの規約では記事中にアドセンス広告は3つまでしか表示してはいけないので、もしオーバーしたならサイドバーウィジェットのアドセンス広告をほかの広告に差し替えるなどして対処しましょう。

おつかれさまでした。