「〇番目の見出しにあわせて自動でアドセンス広告を表示したい」という要望が多いので、そういったことができるカスタマイズ用のコードを紹介しておきます。
要望としては多いものの、広告挿入位置はその記事に合わせた適切な位置に挿入すべき(オートでしたいならアドセンス側の自動広告でいいし…)と開発者が思っているため、SWELLにはこのような機能は実装していません。
ただ、「そういう機能をこれまで別のテーマで使っていた人が、SWELLに乗り換えてくださった時に困る」という声をいただいたのでコードだけ紹介しておきます。
SWELLでは、[ad]
というショートコードを記事中に使用することで、アドセンス等の広告コードを簡単に呼び出せるようにしています。
今回は、このショートコードを自動挿入する方法を紹介していきます。
目次
h2見出しX個ごとに、そのコンテンツ最後に広告を自動挿入するコード
子テーマのfunctions.php
か、カスタマイズ用の自作プラグインに以下のようなコードを記述してください。
// X個ごと(Xn番目)のh2の終わりに [ad] 広告 を挿入するコード
function swl_custom__add_ad_automatically( $the_content ) {
$X = 2;
// 投稿ページ以外は何もしない。
if ( ! is_single() ) return $the_content;
// 本文内のH2を取得 PREG_SET_ORDER
$has_h2 = preg_match_all( '/^<h2.*?>.+?<\/h2>$/im', $the_content, $h2_list, PREG_SET_ORDER );
// h2がなければ何もしない
if ( ! $has_h2 ) return $the_content;
// Xn番目の見出しのコンテンツの最後 = Xn+1 番目の見出しの直前 にコードを挿入する
foreach ( $h2_list as $num => $h2 ) {
if ( $num && ( $num % $X === 0 ) ) {
$the_content = str_replace( $h2[0], '[ad]' . $h2[0], $the_content );
}
}
return $the_content;
}
add_filter( 'the_content', 'swl_custom__add_ad_automatically' );
$X
に代入している整数値は自分で調整してください。
上記のコードであれば、X=2
なので、h2見出し2個ごとに、そのコンテンツの最後(さらに次の見出しが続く場合)に広告を自動挿入します。
つまり、Xn + 1
番目の見出しの直前 に広告を自動挿入する、という内容のコードとなります。