SWELLの記事中のh2上にアドセンス広告を入れ込むカスタマイズは、Cocoonのわいひらさんのものが有名です。
しかしカテゴリーページから読み込むブログパーツにはそのカスタマイズは反映されません。
そこで入れ子のブログパーツからでも、広告を挿入できるように手を加えてみましたのでご紹介します。
SWELLでブログパーツにも広告を挿入するカスタマイズ
SWELLでブログパーツにも見出し上に広告を挿入するカスタマイズは、functions.phpのコードを挿入するだけです。
広告のコードを挿入
基本ですが、アドセンスのコードを下記に仕込んでおきましょう。
WordPressの管理画面 > SWELL設定 > 広告コード > 記事内広告 [ad]
functions.phpのコードを挿入する
まずは従来のわいひらさんのコードでの広告の入れ方です。
コードを記述する場所は下記になります。
WordPressの管理画面 > 外観 > テーマファイルエディター > functions.php
functions.phpに下記のコードを挿入してください。
function add_ad_before_h2_for_3times($the_content) {
//広告(AdSense)タグを記入
$ad = <<< EOF
//////////////////////////
//ここにアドセンスを挿入//
//////////////////////////
EOF;
if ( is_single() ) {//投稿ページ
$h2 = '/^<h2.*?>.+?<\/h2>$/im';//H2見出しのパターン
if ( preg_match_all( $h2, $the_content, $h2s )) {//H2見出しが本文中にあるかどうか
if ( $h2s[0] ) {//チェックは不要と思うけど一応
if ( $h2s[0][0] ) {//1番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][0], $ad.$h2s[0][0], $the_content);
}
if ( $h2s[0][1] ) {//2番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
}
if ( $h2s[0][2] ) {//3番目のH2見出し手前に広告を挿入
$the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
}
}
}
}
return $the_content;
}
add_filter('the_content','add_ad_before_h2_for_3times');コードの引用

ブログパーツやカテゴリーページにも広告を挿入するカスタマイズ
しかし上記のコードではブログパーツに広告が表示されません。
またカテゴリーページの記事にも広告が表示されません
ですので改良を加えてみました。
- ブログパーツにも広告を挿入するカスタマイズ
- AdSense サイト運営者向けポリシー違反対応
広告のコードを挿入
基本ですが、アドセンスのコードを下記に仕込んでおきましょう。
WordPressの管理画面 > SWELL設定 > 広告コード > 記事内広告 [ad]
functions.phpのコードを挿入する
コードを記述する場所は下記になります。
WordPressの管理画面 > 外観 > テーマファイルエディター > functions.php
functions.phpに下記のコードを挿入してください。
function adsense_h2($the_content) {
$ad = do_shortcode('[ad]');
if ( is_single()|| is_category() ) {
$h2 = '/^<h2.*?>.+?<\/h2>$/im';
if ( preg_match_all( $h2, $the_content, $h2s )) {
if ( $h2s[0][1] ) {
$the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
}
if ( $h2s[0][2] ) {
$the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
}
if ( $h2s[0][3] ) {
$the_content = str_replace($h2s[0][3], $ad.$h2s[0][3], $the_content);
}
if ( $h2s[0][4] ) {
$the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content);
}
if ( $h2s[0][5] ) {
$the_content = str_replace($h2s[0][5], $ad.$h2s[0][5], $the_content);
}
if ( $h2s[0][6] ) {
$the_content = str_replace($h2s[0][6], $ad.$h2s[0][6], $the_content);
}
}
}
return $the_content;
}
add_filter('the_content','adsense_h2',100);引用 : https://nelog.jp/add-ads-before-h2
$ad = do_shortcode('[ad]');で入れ子のブログパーツにも広告が挿入できます。
|| is_category()でカテゴリーページにもコードを反映させます。
AdSense サイト運営者向けポリシー違反対応
もしポリシー違反などで特定の記事に広告を表示したいくない時は、if文の条件を足してあげるとよいです。
以下、対応方法を記載しておきます。
タグの作成とタグ付け
まず、広告無しというタグを作成して、該当する記事にタグ付けしてあげます。
広告無し(スラッグ名は no-ads)というタグを作成して広告を非表示にしたい記事に設定しておきました。

コードの修正
あとは先ほどのコードに条件を足してあげるだけです。
3行目に条件を付け加えておきました。
&&!in_array($tag->slug, array("no-ads"))
function adsense_h2($the_content) {
$ad = do_shortcode('[ad]');
if ( is_single()|| is_category() &&!in_array($tag->slug, array("no-ads"))) {
$h2 = '/^<h2.*?>.+?<\/h2>$/im';
if ( preg_match_all( $h2, $the_content, $h2s )) {
if ( $h2s[0][1] ) {
$the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
}
if ( $h2s[0][2] ) {
$the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
}
if ( $h2s[0][3] ) {
$the_content = str_replace($h2s[0][3], $ad.$h2s[0][3], $the_content);
}
if ( $h2s[0][4] ) {
$the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content);
}
if ( $h2s[0][5] ) {
$the_content = str_replace($h2s[0][5], $ad.$h2s[0][5], $the_content);
}
if ( $h2s[0][6] ) {
$the_content = str_replace($h2s[0][6], $ad.$h2s[0][6], $the_content);
}
}
}
}
return $the_content;
}
add_filter('the_content','adsense_h2',100);以上で広告無しというタグの記事には広告が表示されなくなります。
まとめ
本記事ではブログパーツにも広告を挿入するカスタマイズを紹介いたしました。
Googleアドセンスの自動広告はサイトの表示崩れやUXを損なってしまうので、まだまだ自分で意図した場所に広告をいれることをおすすめします。
記事中の見出しh2の上に広告を張ることは、効果が高く、記事の見た目もさほど損なわないのでおすすめです。
ぜひ本記事のカスタマイズを試してみてください。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/WAZA-codeにもまとめています。



