ウィジェットの分岐で『in_category』が上手く機能しない場合の対処法

WordPress
この記事は約2分で読めます。

WordPressのウィジェットを使う際に、『Widget Logic』というプラグインを利用し表示を制御している人も多いと思います。
その際に、『in_category』が上手く作動しないという悩みを感じた人もいるのではないでしょうか?
『in_category』は、そのカテゴリーとそのカテゴリーに含まれる記事という意味ですが、WordPressではカテゴリーを以下のように親カテゴリー(メインカテゴリー)と子カテゴリー(サブカテゴリー)に分けることができます。

カテゴリー1
カテゴリー2(カテゴリー3の親カテゴリー)
 カテゴリー3(カテゴリー2の子カテゴリー)

また、カテゴリー1とカテゴリー3のように複数を選択することも可能です。
WordPressはこのような複雑なカテゴリー設定が可能なため、単純な『in_category』では上手くウィジェット表示を制御しきれないことがあるわけです。

そんな『in_category』がうまく作用しないときの対処法を説明していきます。
まず、カテゴリーの設定が以下のようになっているとします。

カテゴリー1がCategoryID1
カテゴリー2がCategoryID2
カテゴリー3がCategoryID3

カテゴリー1とカテゴリー1の個別記事だけにウィジェットを表示させたい場合は、『Widget Logic』で

is_category(‘1’) || single() && in_category(‘1’)

と設定してください。
is_category(‘1’)でカテゴリー1のページ、single() && in_category(‘1’)でカテゴリー1の個別記事という設定になるので、大抵の場合はこれで問題が解決するはずです。

スポンサーリンク

コメント

Translate »
タイトルとURLをコピーしました