広告 WordPress関連

Post Snippetsプラグインで特定ページの広告を非表示にする方法(囲みショートコードによる)

スポンサーリンク

 

Post Snippets

特定のページでAdSense広告等を非表示にしたい時があります。 

例えば、知り合い同士に限定したパスワードで保護されたプライベートページで、AdSense広告がクリックされるとポリシー違反になる恐れがあるので、このページのAdSense広告(手動及び自動広告)を非表示にしたい場合がそれに当たります。 

こんな時に、特定ページの要素部分を非表示に出来る囲み型ショートコードを使えば、手動のAdSense広告コードを囲むことで手動広告を非表示に出来ます。 又自動広告に対しては、AdSenseの管理画面から特定ページのURLを指定すれば自動広告を除外することができます。

今回は、Post Snippets Plugin(以下PSPに略します)を使った上記の囲み型ショートコードを作成する方法を中心に、特定ページのAdSense広告を非表示にする方法の紹介です。

 

ショートコードについて

WordPressのショートコードは、自己完結型と囲み型の2つがあります。 

自己完結型ショートコードは、例えば以前紹介した「WordPressに『日時』表示。PHPとJavaの使い分け」にある、【date_stamp_php flg="0"】をページの中に配置して、日時表示を単独で処理できるものです。 これは、PSPで作成する一般的な自己完結型ショートコードです。

一方の、囲み型ショートコードは始点[shortcode]と終点[/shortcode]でコンテンツを囲みます。 始点の[shortcode]で分岐などの処理を行い、囲まれているコンテンツに対して終点[/shortcode]で処理を完了させるものです。 

 

オペレータ
オペレータ
今回の場合は、特定ページか否かを調べてショートコードで囲まれたAdSenseの広告コード(要素)を表示・非表示を処理するので、囲み型ショートコードにする必要があります。

 

PSPによる囲み型 ショートコードの作成

ポイント

PSPで囲み型ショートコードを作るには、{content} で表記指定します。 イメージ的には、 { の前方が始点[shortcode] に対応し、  } の後方が終点[/shortcode] に対応します。

 

オペレータ
オペレータ
では、PSPの設定画面(下の画面)で項目①〜⑥について説明し、囲み型ショートコードを作成して行きます。

 

Post Snippetsの設定画面

blank

ショートコードの名前を記入:ここでは、AD_block としました。

 特定ページに対して、広告を非表示にするPHPコードを記入します。

2022/12/31: PHPコードを一部見直し訂正しました

(備考)
現在表示しているページと指定ページIDと一致しているか調べる方法として投稿ページに対してはis_single(指定ページID) 関数があります。 固定ページの場合は is_page(指定ページID) 関数を使います。 
今回は固定、投稿ページの両方で使える get_the_ID();  関数を使いました。

PSP設定画面に戻って

Variablesは未記入です。 のShortcodeと  のPHPは夫々レ点を入れます。
Descriptionは、適当にわかり易いショートコードの説明文を記入します。

以上の設定が終わったらSave ボタンを押して保存すれば、「特定ページのAdSense広告を非表示する囲みショートコード」が完成します。 

 

完成した囲みショートコードの使い方

手動のAdSense広告コードは、通常 ウィジェット に記載されていると思います。 AdSense広告コードの設置されている場所に移動して、以下の様にPSPで作成した【AD_block】ショートコードをサンドイッチすれば、指定した特定ページにAdSense広告が表示されなくなる筈です。( 【】は半角の大括弧 [ ] にしてください)

 shortcode
[AD_block] AdSense広告コード [/AD_block]

 

以上によって、ページIDで指定した特定ページに対して、手動広告を非表示することができます。 

 

オペレータ
オペレータ
今回作ったショートコードは、手動広告を非表示にするだけではありません。 特定ページの中で、非表示にしたい要素があれば、このショートコードで囲えばその要素が非表示になりますので、ご活用ください。

 

特定ページに対して自動広告を除外させる方法

オペレータ
オペレータ
以下の方法で特定ページの自動広告を除外させることが出来ます。
  • アドセンスの管理画面を開きます。
  • 広告 > サイト名 > 編集 に入ります。 除外ページ 管理 をクリックします。
  • +除外設定 を追加をクリックします。 
  • 除外するページのURLを記入して、 追加 ボタンを押します。 戻って サイトに適用 ボタンを押します。

blank

以上の操作設定で、特定ページの自動広告を除外できます。

 

指定した特定ページの広告が非表示になっているかの最終確認

  • アドセンスの管理画面から広告サマリーを開いて、該当サイトの鉛筆アイコン(編集)をクリックします。
  • 広告設定のプレービューが表示されるので、指定した特定ページのアドレスに書き換えます。

    blank

  • 「自動広告の例」や手動広告を意味する「既存の AdSense 広告」の表示が無いことをモバイルアイコンとPCアイコンをクリックして確認します。

 

更に、「404頁」 や「プレビュー頁」で AdSense を表示しない様にPHPコードを追加しました。(2021/12/14追記)

投稿記事の更新時、プレビューで事前確認しますが、アドセンス広告が表示され誤クリックする心配やクローラエラーになる可能性がありますので、プレビュー時にアドセンス広告を非表示にするPHPコードをPost Snipetsに追加しました。

PHP関数説明
is_preview() 関数:「プレビュー頁」なら true そうでなければ false を返します。 
is_404() 関数:「404頁」なら true そうでなければ false を返します。

変更行(4行)をハイライトさせています。 is_preview() || is_404() コードを OR で繋げて 「プレビュー頁」や 「404 頁」に対してもアドセンス広告を非表示にしています。 なお、「プレビュー頁」や 「404 頁」の自動広告は非表示にできません。

 

注意!

WP Fastest Cache Premium(有料版)をお使いで、ウィジェットに【AD_block】AdSense広告コード【/AD_block】を配置する場合は、「Don't cache this widget」にレ点を入れる必要があります。 レ点を入れないとキャッシュが残り、AdSense広告が正常に表示されない可能性があります。

 

以上、特定ページの広告を非表示にする方法の紹介でした。 また、PSPによる囲み型ショートコードの作成方法がイマイチ分かり難いので、ヒントの一助にして頂ければと思います。

 

スポンサーリンク

 

スポンサーリンク

 

t