ページによるウィジェット表示制御の必要性
WordPressではサイドバーやフッタなどに表示させるものは、(最近はほとんど)ウィジェットになっています。自分の好みや都合によって自由に設置できるので非常に便利です。
しかし、問題もあります。基本的にはどのページにも同じウィジェットが表示されますが、例えば、404ページ(エラーページ)にはAdSenseを表示させることは、規約上、できません。つまり、「通常のページには表示させるが、404ページには表示させない」という制御が必要になります。
そこで、ウィジェットの表示を制御する方法を調べてみました。
プラグインでできる
やりたいことは大抵はプラグインでできるのがWordPressの嬉しいところ。ウィジェットの表示制御もプラグインがありました。Widget Logicがそれです。他にもあるでしょうけど、これ上手く行ったので、他は見ていません。インストール実績も多く、レビューも良さそうなので、問題ないでしょう。
プラグインの新規追加の画面でこれを検索し、インストール、有効化するだけです。一般的な方法なので省略。
設定も特にありません。有効化するだけで使えます。
実際の使い方
ウィジェットの設定画面は通常はこのようになっていると思います。
今回のWidget Logicをインストール、有効化すると、「ウィジェットのロジック」という枠が下に追加されます。
上の例のように枠内に以下を記述します。
[code]!is_404()[/code]これで、404ページではこのウィジェットは表示されないようになります(より正しくは、「404ページ以外なら表示する」です)。同じ制御をしたいウィジェットにはすべて同じ設定をしてください。
試しに、こちらのリンクをクリックしてみてください。
このブログの404ページが表示されますが、サイドバーには広告類は表示されません。
他の条件でも可能
上ではis_404()
を使って「404ページ」という条件を指定しました。正確には!
を付けて!is_404()
として「404ページ以外」という条件です。
もちろん、これ以外の条件も指定可能です。例えば、is_single()
なら個別投稿ページ、is_page()
なら固定ページといった具合。さらにページ番号(ID)を指定して特定のページだけに対して表示させたり禁止したりということもできます。
これ以外にもたくさんの条件式があります。WordPressの条件分岐タグが使えるはずです。
興味があればご覧になってみてください。
AdSenseの自動広告を404ページに表示させない方法
AdSenseの自動広告のタグはウィジェットではなく<head>セクションに設置します。ですので、ここで紹介した方法とは別のやり方で対処します。
こちらのページにまとめてあります。