MENU
カテゴリー

見出しX個ごとに広告コードを自動挿入する方法

記事上のウィジェットエリア

「〇番目の見出しにあわせて自動でアドセンス広告を表示したい」という要望が多いので、そういったことができるカスタマイズ用のコードを紹介しておきます。

要望としては多いものの、広告挿入位置はその記事に合わせた適切な位置に挿入すべき(オートでしたいならアドセンス側の自動広告でいいし…)と開発者が思っているため、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番目の見出しの直前 に広告を自動挿入する、という内容のコードとなります。

記事下のウィジェットエリア

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次