本稿では、Luxeritasの最後のH2手前にアドセンス用のウィジェットエリアを作成する方法を記します。
最後のH2手前はサイト離脱に近いポイント。
個人的には最初のH2と並んでアドセンスを置くのが有効な場所と考えています。
コード
次のコードを子テーマのfunctions.phpに貼りつけてください。
貼りつける位置は一番下で大丈夫です。
/* 最後のH2タグ手前にウィジェットエリア追加 */ if (function_exists('register_sidebar')){ register_sidebar(array( 'name' => '投稿内で最後に見つかったH2タグの上', 'id' => 'last-h2-title', 'description' => '投稿内で一番最後に見つかったH2タグの上にウィジェットを配置します。', 'before_widget' => '<div id="%1$s" class="widget last-h2-title %2$s">', 'after_widget' => '</div>', 'before_title' => '', 'after_title' => '' )); } ///////////////////////////////////// // 投稿本文中の下にウィジェットを表示する ///////////////////////////////////// if ( !function_exists( 'add_widget_before_2nd_h2' ) ): function add_widget_before_2nd_h2($the_content) { if ( is_single() && //投稿ページのとき、固定ページも表示する場合はis_singular()にする is_active_sidebar( 'last-h2-title' ) //ウィジェットが設定されているとき ) { // 投稿本文中の下タグを記入 ob_start();//バッファリング dynamic_sidebar( 'last-h2-title' );// 投稿本文中の下ウィジェットエリアの表示 $ad_template = ob_get_clean(); $h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか if ( $h2s[0] ) {//チェックは不要と思うけど一応 if ( $h2s[0][1] ) {//H2が2個以上なら最後のH2見出し手前に挿入 $the_content = str_replace($h2s[0][count($h2s[0]) - 1], $ad_template.$h2s[0][count($h2s[0]) - 1], $the_content); } } } } return $the_content; } endif; add_filter('the_content','add_widget_before_2nd_h2');
注意点として、ampには対応していません。
(私はampを使っていないので必要ない)
説明
参考記事
参考にしたのはこちらの記事です。
Cocoonで最後H2上にウィジェットエリアを追加するカスタマイズ | 真宗興正派 円龍寺
無料ワードプレステーマCocoonに投稿本文記事の最後見出しH2の上にウィジェットエリアをプラグインなしで追加する方法を紹介。子テーマのfunctions.ph...
この手のカスタマイズの原点となる記事はこちら。
あわせて目を通しておくと勉強になります。
本文記事1、2、3番目のH2見出し手前にアドセンスを挿入するWordPressカスタマイズ方法
1年ほど前、最初のH2見出し手前に広告を表示する方法を考えてみました。 この方法は、現在自分のテーマでも利用し…
コードの意味について知りたい方はこちらの記事がおすすめです。
Googleアドセンス、H2タグ(見出し)の前に広告を自動追加する方法
Googleアドセンス、H2タグ(見出し)の前の広告 上記画像の 「Cocoon、ウィジェットエリアはどこで定義されているか?」 の部分がH2見出しです。 「ア...
ウィジェットエリア追加部分
ウィジェットエリア追加部分はLuxeritasの「最初のH2手前」エリアとあわせています。
アドセンスを設置するのが前提なので「’before_title’ => ”, ‘after_title’ => ”」は空白です。
もしアドセンス以外のウィジェットを設置かつタイトルをつけるのであれば指定してください。
ウィジェット表示部分
参考記事にあるコードをLuxeritasにそのまま貼りつけても動きません。
理由はLuxeritasとCocoonでamp出し分けの方法が違うためと思われるので、当該箇所を削除。
echoで返す部分も不要なので削除しています。
最後に
調べていて、Cocoonの情報の多さが羨ましくなりました。
誰かが書いていればコピペするだけでいいから、自分で備忘録を書く必要ないので……。