DigiPress

Highly Flexible WordPress Theme

メニュー

ページの種類ごとで表示するウィジェットを分ける方法


トップページ、カテゴリーページ、記事ページごとで表示したいウィジェットを分けたい場合や、特定の種類のページにはウィジェットを表示させたくない場合があります。

そのような場合は、「Display Widgets(簡単)」、「Widget Options(多機能)」、「Widget Logic(シンプル、上級者向け)」というプラグインを利用してウィジェットの表示対象ページを限定させることができます。

まずはプラグインをダウンロードしてインストールするか、WordPressのプラグインの「新規追加」画面から「Widget Logic」と検索して管理画面からインストールしましょう。

Display Widgetsについて

Display Widgetsの場合は、各ウィジェットのパネルの下に該当ウィジェットを表示するための条件を “表示対象ユーザー(未指定、ログインユーザーのみ、非ログインユーザーのみ)”、”ページ種別(フロントページ、固定ページ、カテゴリー、任意の記事ID)”+”選択ページ種別を表示対象とするか” から組み合わせることができます。
control-widgets
ある程度単純な表示条件であればこのプラグインだけで簡単に表示制御を行えます。

このプラグインで指定できないより複雑な表示条件を設定したい場合は、次の「Widget Logic」プラグインを利用します。

Widget Logicについて

プラグインをインストールして有効にすると、各ウィジェットのパネルの一番下に Widget Logicプラグイン用の条件指定テキストボックスが追加されます。

このテキストボックスにWordPressでサポートされている「条件分岐タグ」というタグ(関数)を指定することであらゆる表示条件を指定してウィジェットの表示を制御することができます。

参考 : 利用可能な条件分岐タグ一覧

条件分岐タグ指定例

トップページのみに表示する場合

is_home() && !is_paged()

条件分岐タグ基本解説

  • 条件タグの先頭に ! (感嘆符)を付けると否定条件となります。
  • 条件タグ同士を && で繋げると「AND」(すべての条件を満たす)条件となります。
  • 条件タグ同士を || で繋げると「OR」(いずれかの条件を満たす)条件となります。

基本的な表示条件指定例

フロントページのみに表示する場合
is_front_page() && !is_paged()
投稿ページのみに表示する場合
is_single()
固定ページのみに表示する場合
is_page()
複数ページにわたるページ(2ページ目以降)に表示する場合
is_paged()
アーカイブページのみに表示する場合
is_archive()
※アーカイブページとは、カテゴリーページ、タグページ、検索結果、日付アーカイブページなど記事の一覧が並ぶページのことです。
カテゴリーページのみに表示する場合
is_category()
検索結果ページのみに表示する場合
is_search()
日付アーカイブページのみに表示する場合
is_date()
タグページのみに表示する場合
is_tag()
投稿者のアーカイブページのみに表示する場合
is_author()
カスタム投稿タイプのアーカイブのみに表示する場合
is_post_type_archive()
任意のカスタム投稿タイプのみに表示する場合
get_post_type() === 'カスタム投稿タイプのスラッグ'
※”===” は左右の条件が等しいことを意味しています。
任意のカスタム投稿タイプのみ表示しない場合
get_post_type() !== 'カスタム投稿タイプのスラッグ'
※”!==” は左右の条件が等しくないことを意味しています。

これらの条件分岐タグについて基本が理解できたら、以下の応用編の条件指定方法を覚えるとさらに細かな条件を指定できます。

応用編

さらに条件を絞り込んで、IDを指定することで特定のカテゴリーや任意の固定ページのみ、といった条件も設定することができます。

トップページ以外に表示(トップページだけ非表示)する
!is_home()
※先頭に「!」を付けると、否定(〜でない)の意味になります。
IDが 11,23, または 120 の投稿ページのみに表示する
is_single( array( 11, 23, 120 ) )

Check投稿IDの確認方法

または、管理画面からIDを確認できるプラグイン「ShowID for Post/Page/Category/Tag/Comment」をご利用ください。

IDが 11、または投稿スラッグが “hello-my-friend” の投稿ページのみに表示する
is_single( array( 11, 'hello-my-friend' ) )
カテゴリーIDが 10 のカテゴリーページのみに表示する
is_category( 10 )

CheckカテゴリーIDの確認方法

または、管理画面からIDを確認できるプラグイン「ShowID for Post/Page/Category/Tag/Comment」をご利用ください。

カテゴリースラッグが “plugins” のカテゴリーページのみに表示する
is_category( 'plugins' )
カテゴリーIDが 10、またはカテゴリースラッグが “plugins”, “themes”, “blog” のカテゴリーページのみに表示する
is_category( array( 10, 'plugins', 'themes', 'blog' ) )
検索結果ページ または カテゴリーID が “20” のカテゴリーページの場合のみに表示する
is_search() || is_category( 20 )
「条件A || 条件B」は、「条件A または 条件B」の意味になります。
カテゴリーページ以外で、かつ投稿スラッグが「sample-post」の記事ページ以外の場合に表示する
!is_category() && !is_single( 'sample-post' )
「条件A && 条件B」は、「条件A かつ 条件B」の意味になります。
お知らせ用(スラッグ:news)カスタム投稿タイプのアーカイブとその単体ページの場合だけに表示する
is_post_type_archive( 'news' ) || get_post_type() === 'news'

参考

さらに細かな条件や条件分岐タグについての説明はWordPress Codexを参考にしてください。

利用可能な条件分岐タグ一覧

ウィジェットの表示制御について

PC用とモバイル用で表示ウィジェットを分ける方法はこちらを参考にしてください。

詳細はこちら