AdSenseの記事内広告を一括で設定する

これから説明する方法を使えば、最初から〇番目までのh2見出しの直前に記事内広告を自動で挿入することができます。

functions.phpにコードを追加

functions.phpに貼り付けるコードの基本形は下のとおりです(書き換える場所が2カ所あります)。

function add_ad_before_h2($the_content) {
$ad = <<< EOF
///////// ここにコードを貼り付け /////////
EOF;
$adc = ''; // 記事内広告の表示数

	if (is_single() && $ad && $adc) {
		$h2 = '/^<h2.*?>.+?<\/h2>$/im';
		if (preg_match_all($h2, $the_content, $h2s)) {
			if ($h2s[0]) {
				foreach (range(0, $adc-1) as $x) {
					if ( $h2s[0][$x] ) {
						$the_content = str_replace($h2s[0][$x], $ad.$h2s[0][$x], $the_content);
					}
				}
			}
		}
	}
	return $the_content;
}
add_filter('the_content', 'add_ad_before_h2');

AdSenseのコードを貼り付け、広告の表示数を入れると、下のようになります。

function add_ad_before_h2($the_content) {
$ad = <<< EOF
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-1029143496497061"
data-ad-slot="9972088510"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
EOF;
$adc = '3'; // 記事内広告の表示数

	if (is_single() && $ad && $adc) {
		$h2 = '/^<h2.*?>.+?<\/h2>$/im';
		if (preg_match_all($h2, $the_content, $h2s)) {
			if ($h2s[0]) {
				foreach (range(0, $adc-1) as $x) {
					if ( $h2s[0][$x] ) {
						$the_content = str_replace($h2s[0][$x], $ad.$h2s[0][$x], $the_content);
					}
				}
			}
		}
	}
	return $the_content;
}
add_filter('the_content', 'add_ad_before_h2');

これで、記事内広告が自動で挿入されるようになります。

ここでは表示数を「3」に設定したので、1番目・2番目・3番目のh2見出しの直前に広告が挿入されます。