Cocoonの標準機能にある広告設定を使い記事中に広告を挿入する方法では広告の設置場所は最初のh2見出しの手前などに限ら特定の場所を指定することはできないようです(記事投稿時点)。
そこで手動設定により最初の見出しに限らず2番目以降のh2など任意の場所へ広告を入れる方法を模索してみました。
子テーマのfunction.phpを使う方法
記事中の任意の見出しを選んで広告を表示させる方法は、Cocoonの前身であるSimplictyについて書かれた次のページが参考になりそうです。
参考 本文記事1、2、3番目のH2見出し手前にアドセンスを挿入するWordPressカスタマイズ方法寝ログ名子テーマに作成したfunction.phpに広告挿入用のコードを追記すれば、投稿ページの指定した見出しの上に広告が表示されるというものです。
リンク先の内容は1番目から3番目までのH2タグの手前に広告を表示させるというもので、この記述を参考にすれば3番目と5番目のH2を選んでその上に広告を入れることが出来そうです。
3番目と5番目のh2手前に広告を表示する記述
次が参考サイトをもとにした3番目、5番目のh2見出しの上に広告を挿入する記述です。
function add_ad_before_h2_for_3times($the_content) {
$ad = <<< EOF
//////////////////////////
//ここに広告タグを挿入//
//////////////////////////
EOF;
if ( is_single() ) {
$h2 = '/^<h2.*?>.+?<\/h2>$/im';
if ( preg_match_all( $h2, $the_content, $h2s )) {
if ( $h2s[0] ) {
if ( isset($h2s[0][2]) ) {//3番目のh2見出し手前に広告を表示
$the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
}
if ( isset($h2s[0][4]) ) {//5番目のh2見出し手前に広告を表示
$the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content);
}
}
}
}
return $the_content;
}
add_filter('the_content','add_ad_before_h2_for_3times');
1番最初のh2についてはCocoonで標準装備されている設定項目から挿入が可能なのでここでは省略しています。
上から順にh2をカウントして該当する箇所へ広告コードを書き出す内容です。
見出し順の数値だけの変更で問題ないのか検証のため調べてみたところ、次のサイトで任意の場所へ広告を挿入する方法として同じく3、5番目の手前に挿入する内容を記事として取り上げているのを見つけました。
https://aboutlife-blog.com/adsense-before-h2/
こちらは、広告タグをファイルに記述してそれをfunction.phpから読み込むという内になっていますが、プログラム自体はSimplictyについて書かれたものと同様の手法を用いています。
どちらもCocoon以外のWordPressテーマでも動作が可能かと思われますが、すべてのテーマで安定動作するとは限らず、導入しているプラグインについても相性の有無は検証してみないと分からないと思ったほうがよいでしょう。
記事中に広告を入れる効果
当記事の投稿時点では、Cocoonの標準機能で2番目以降の任意のh2(またはh3)を指定して広告コードを挿入させる方法は見当たりません。
(※上から何番目までや全部のh2見出しの上に表示させることは可能ですが任意の場所は指定できない。)
最初のh2は設定可能なので、他の場所へも複数挿入させる機能もできないことはなさそうですが、テーマの開発者として、または一般的な考えとしても広告を多く入れすぎることが望ましくないと判断しているのでしょう。
ただし、自動広告を設定した場合にも記事中の思わぬ場所に広告が表示されてしまうことはあります。
こうした状況を回避し一時的に、またはテスト目的で記事中の広告を増やしてみたいというときに今回の方法は有効かもしれません。
なお、当サイトで使用してるテーマSANGOでは最初のh2から5番目まで設定項目から自由に広告の挿入位置を選択できる仕様ですが当ページのように広告数は制限しています。
実際にCocoonテーマを使って複数の広告を表示させているのは娯楽色の強い趣味系のサイトだけです。
おすすめ記事
SANGOで固定ページを適用させたカテゴリーページに新着一覧を表示させる方法 記事中のテキストリンク手前に見出しのようなラベルをつけてみる