ページごとに異なるフィルターを表示する方法
[woof] ショートコードは、どのフィルタを表示し、どの製品を表示するかを制御できる属性を受け入れます。
メイン属性:
tax_only– 特定のタクソノミー (カテゴリ、属性) のみを表示by_only– 特定の非タクソノミーフィルター(価格、SKU、在庫など)のみを表示しますtaxonomies– 特定のタクソノミータームのみを表示(ダイナミックリカウントで使用)
ショートコードの例
特定のタクソミーをフィルター
カテゴリとブランドのフィルターのみを表示:
[woof tax_only="product_cat,pa_brand"]
非タクソノミー要素のフィルタリング
価格、SKU、在庫フィルターのみを表示:
[woof by_only="by_price,by_sku,by_instock"]
組み合わせ: タクソノミー + 非タクソノミーフィルター
特定のタクソノミーと非タクソノミーフィルターのみを表示:
[woof tax_only="product_cat,pa_size,pa_color" by_only="by_price,by_instock"]
タクソノミー属性の使用 (動的再カウント用)
特定のタクソノミーから特定のタームのみを表示する:
[woof taxonomies="product_cat:35,42,58+pa_brand:nike,adidas"]
注意: 。 taxonomies 「動的カウント」または「空のオプションを非表示」が有効な場合に属性が使用されます。
完全なセットアップガイド
ステップ 1: ショートコードを作成する
様々な [woof] 各ページに適切な属性を持つショートコード。
例:
- サプライヤー A:
[woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"] - サプライヤーB:
[woof taxonomies="product_cat:50+pa_brand:nike,adidas" by_only="by_price"]
ステップ 2: ウィジェットにショートコードを配置する
- 移動 外観 → ウィジェット
- 追加 テキスト または カスタム HTML サイドバーにウィジェット
- ショートコードをウィジェットに貼り付けます。
- 各ショートコードの個別ウィジェットを作成する
ステップ 3: Conditional Widget Plugin をインストールする
ページ条件に基づいてウィジェットの表示を制御するプラグインが必要です。
いずれかを選択:
- ウィジェットロジック – https://wordpress.org/plugins/widget-logic/
- Show WordPress Widget by Logic – https://github.com/realmag777/Show-WordPress-Widget-by-Logic
ステップ 4: 可視性条件の設定
各ウィジェットに条件付きロジックを追加して、表示場所を制御します。
条件ロジックの例
特定のページにフィルターを表示
ページスラッグ別:
is_page('supplier-nike')
ページID別:
is_page(123)
複数のページでフィルターを表示
is_page(array('supplier-1', 'supplier-2', 'supplier-3'))
カテゴリーアーカイブにフィルターを表示する
カテゴリID別:
is_product_category(35)
カテゴリスラッグ別:
is_product_category('electronics')
カスタム階層でフィルターを表示
is_tax('supplier', 'nike-products')
特定のページを除外
ページ 123 を除くすべてに表示:
!is_page(123)
完全な例の設定
シナリオ:3つのサプライヤーと異なるフィルター
サプライヤーA(Nike)– ページID:123
- ショートコード:
[woof tax_only="product_cat,pa_size,pa_color" by_only="by_price"] - ウィジェット条件:
is_page(123) - 結果: サイズ、色、価格フィルター付きのすべての製品カテゴリを表示します
サプライヤーB(Adidas) – ページスラグ:adidas-products
- ショートコード:
[woof taxonomies="product_cat:40,41,42" by_only="by_instock"] - ウィジェット条件:
is_page('adidas-products') - 結果: 在庫フィルターでカテゴリ40、41、42のみを表示
サプライヤーC – カテゴリアーカイブID:50
- ショートコード:
[woof tax_only="product_cat,pa_brand" by_only="by_price,by_sku"] - ウィジェット条件:
is_product_category(50) - 結果: カテゴリ、ブランド、価格、SKUフィルターを表示します
属性の理解
tax_only vs taxonomies
使用 tax_only いつ:
- すべてのタクソノミー(すべてのターム)を表示したい場合
- 例:
tax_only="product_cat,pa_brand"すべてのカテゴリとすべてのブランドを表示する
使用 taxonomies いつ:
- 「動的再カウント」または「空のオプションを非表示」が有効になっています
- 特定のタクソノミーから特定のタームを表示したい
- 例:
taxonomies="product_cat:35,42+pa_brand:nike"カテゴリ35と42のみ、およびNikeブランドのみを表示します
by_only 値
利用可能な非タクソノミーフィルター by_only:
by_price– 価格範囲スライダーby_sku– SKU による検索by_text– テキスト検索by_author– 作成者でフィルターby_onsales– セール中の商品のみを表示by_instock– 在庫あり製品のみを表示- メタフィールドキー (WOOF 設定で有効になっている場合)
使用 by_only="none" すべての非タクソノミーフィルターを非表示にする。
IDとスラッグの検索
カテゴリ ID
- 移動 Products → Categories
- カテゴリ名の上にカーソルを合わせる
- ブラウザのステータスバーまたはURLを確認してください
- 検索
tag_ID=35– 数字はあなたのカテゴリーIDです
Page IDs
- 移動 Pages
- ページ名にカーソルを合わせる
- URL を参照してください:
post=123 - この数字はあなたのページのIDです
属性スラッグ
- 移動 商品 → 特性
- 属性スラッグは次から始まります
pa_ - 例:
pa_brand,pa_size,pa_color,pa_material
セットアップのテスト
- まずショートコードをテストする
- ショートコードをテストページに直接配置する
- フィルターが正しく表示されることを確認する
- フィルタリングが機能することを確認する
- Test widget visibility
- フィルターを表示したい各ページにアクセスしてください
- フィルターが正しく表示されることを確認してください
- 他のフィルターが表示されないことを確認する
- 1ページあたり1つのフィルターのみを確認する
- 同じページに複数のフィルターを配置すると競合します
- ウィジェット条件を使用して排他性を確保します。
重要な制限事項
1ページあたり1つのフィルターのみ: ページでアクティブにできる WOOF フィルタは 1 つだけです。複数のフィルタは競合します。
ソリューション: ウィジェットの条件付きロジックを使用して、ページごとに1つのフィルターウィジェットのみが表示されるようにします。
ヒント
- まず shortcode を直接テストしてください
- ウィジェットに追加する前に、通常のページでショートコードをテストしてください。
- 属性が正しいことを確認します
- 排他的な条件を使用する
- ウィジェットの条件が重複しないようにしてください
- ページあたり 1 つのフィルターのみ表示されるようにしてください
- 否定条件
- 使用
!is_page(123)特定のページを除外する - 「すべて表示、ただし~を除く」シナリオに便利です。
- 使用
- 属性のスラッグを確認してください。
- 属性のスラッグはで始まる必要があります
pa_ - Wrong slug = filter won’t appear
- 属性のスラッグはで始まる必要があります
完全なドキュメント
ショートコード属性の完全なリファレンスについては、こちらをご覧ください: https://products-filter.com/shortcode/woof
トラブルシューティング
フィルターが表示されない
考えられる原因:
- 現在のページではウィジェット条件はfalseです
- ショートコードの属性が無効です
- カテゴリ/属性 ID が存在しません
- 複数のフィルターが競合する
ソリューション:
- ページ ID/スラッグが条件と一致するか確認します
- Products → Categories でカテゴリIDを確認する
- まず通常のページでショートコードをテストしてください
- ページごとにフィルターウィジェットを 1 つだけ使用するようにしてください
間違った製品の表示
考えられる原因:
- カテゴリIDが正しくありません
- 属性スラッグが間違っています
- 間違った属性を使用しています (
tax_onlyvstaxonomies)
ソリューション:
- カテゴリ ID を再確認する
- 属性のスラッグが~で始まることを確認
pa_ - 使用
taxonomies動的再カウントが有効な場合 - まずはシンプルなショートコードでテストしてください
Multiple Filters Displaying
原因: ウィジェット条件の重複
ソリューション:
- すべてのウィジェット条件を確認する
- 相互排他性を確保する
- 負の条件を使用して分離する
Filter Shows on Wrong Pages
原因: ウィジェットの条件が広すぎる
ソリューション:
- 条件をより具体的にする
- 必要に応じてカテゴリの代わりにページIDを使用する
- 条件ロジックを慎重にテストしてください
概要
ページごとに異なるフィルターを表示するには:
- カスタムを作成
[woof]ショートコードtax_onlyおよび/またはby_only属性 - 各ショートコードを個別の Text/HTML ウィジェットに配置します
- Widget Logic プラグインをインストールする
- 各ウィジェットに条件付きロジックを追加します(例:
is_page(123)) - ページごとに1つのフィルターのみが表示されることを確認するためのテスト
覚えておいてください: ページごとにアクティブにできるフィルターは1つだけです。。ウィジェットの条件を使用して排他性を確保してください。