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行目の条件に、タグによる除外を付け加えておきました。
( is_single() || is_category() ) && ! has_tag('no-ads')
is_single()とis_category()を括弧でまとめているのは、括弧がないと&&が先に結合して、投稿ページで除外条件が評価されなくなるためです。
function adsense_h2($the_content) {
$ad = do_shortcode('[ad]');
if ( ( is_single() || is_category() ) && ! has_tag('no-ads') ) {
$h2 = '/^<h2.*?>.+?<\/h2>$/im';
if ( preg_match_all( $h2, $the_content, $h2s ) ) {
if ( isset($h2s[0][1]) ) {
$the_content = str_replace($h2s[0][1], $ad.$h2s[0][1], $the_content);
}
if ( isset($h2s[0][2]) ) {
$the_content = str_replace($h2s[0][2], $ad.$h2s[0][2], $the_content);
}
if ( isset($h2s[0][3]) ) {
$the_content = str_replace($h2s[0][3], $ad.$h2s[0][3], $the_content);
}
if ( isset($h2s[0][4]) ) {
$the_content = str_replace($h2s[0][4], $ad.$h2s[0][4], $the_content);
}
if ( isset($h2s[0][5]) ) {
$the_content = str_replace($h2s[0][5], $ad.$h2s[0][5], $the_content);
}
if ( isset($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);以上で広告無しというタグの記事には広告が表示されなくなります。
確認した環境と範囲
2026年10月11日に、掲載コードを静的に読み直しました。除外条件のコードは波括弧の対応が崩れて構文エラーになり、$tagが未定義で、&&と||の優先順位により投稿ページで除外が効かない状態でしたので修正しています。
修正後のコードを実際のWordPressに適用し、ブログパーツやカテゴリーページでの広告表示を再確認したものではありません。導入前にfunctions.phpをバックアップし、検証環境で表示と除外タグの動作を確認してください。
広告の配置方針・掲載量・アドセンスの設定自体は変更していません。
まとめ
本記事ではブログパーツにも広告を挿入するカスタマイズを紹介いたしました。
Googleアドセンスの自動広告はサイトの表示崩れやUXを損なってしまうので、まだまだ自分で意図した場所に広告をいれることをおすすめします。
記事中の見出しh2の上に広告を張ることは、効果が高く、記事の見た目もさほど損なわないのでおすすめです。
ぜひ本記事のカスタマイズを試してみてください。
アーカイブページ側にブログパーツを置く場合はSWELL│アーカイブページにブログパーツを挿入する方法、SWELLのショートコード全体はSWELLで使える!専用ショートコード17選まとめにまとめています。
この記事で紹介しているコードは、GitHubのMOTOKI-LLC/WAZA-codeにもまとめています。
よくある質問:SWELLでブログパーツにも広告を挿入するとき
従来のコードでは、なぜブログパーツに広告が表示されないのですか?
記事では、従来のわいひらさんのコードでは、ブログパーツやカテゴリーページから読み込む記事に広告が表示されないとされています。そこで、入れ子のブログパーツにも広告を挿入できるように手を加えたコードを紹介しています。
コードはどこに入れますか?
記事では、functions.phpのコードを挿入するだけです。広告のコード(アドセンスのコード)を先に仕込んでから、functions.phpにコードを挿入します。導入前にfunctions.phpをバックアップし、検証環境で表示と除外タグの動作を確認してください。
特定の記事だけ広告を非表示にするには?
記事では、AdSense サイト運営者向けポリシー違反などで特定の記事に広告を表示したくないとき、if文の条件を足します。まず「広告無し」というタグ(スラッグ名はno-ads)を作成し、広告を非表示にしたい記事にタグ付けします。
タグでの除外は、コードのどこに足しますか?
3行目の条件に、タグによる除外を付け加えます。記事では、括弧でまとめているのは、括弧がないと先に結合して、投稿ページで除外条件が評価されなくなるためと説明されています。これで広告無しというタグの記事には広告が表示されなくなります。
掲載コードは、実際のWordPressで確認済みですか?
確認していません。記事では、2026年10月11日に掲載コードを静的に読み直し、除外条件のコードの構文エラーなどを修正しましたが、修正後のコードを実際のWordPressに適用し、ブログパーツやカテゴリーページでの広告表示を再確認したものではないとされています。
広告の配置方針やアドセンスの設定は、記事で変更されますか?
変更されません。記事では、広告の配置方針・掲載量・アドセンスの設定自体は変更していないとされています。
アドセンスの自動広告ではなく、手動で入れる理由は何ですか?
記事では、Googleアドセンスの自動広告はサイトの表示崩れやUXを損なってしまうので、自分で意図した場所に広告をいれることをおすすめしています。記事中の見出しh2の上に広告を張ることは、効果が高く、記事の見た目もさほど損なわないとされています。
アーカイブページにブログパーツを置く場合は?
記事では、アーカイブページ側にブログパーツを置く場合は「SWELL│アーカイブページにブログパーツを挿入する方法」、SWELLのショートコード全体は「SWELLで使える!専用ショートコード17選まとめ」にまとめているとされています。



