質問: ショップページに特定のカテゴリの商品を表示する 私は多くの人がこの質問をしたことを知っていますが、私はそれをする適切な方法を見つけませんでした。ショップページのクエリの実行前に簡単なmeta_query(product_cat)を追加する方法。たぶんフィルターを使って?よろしく、エイドリアン
回答: ショップページは、実際には「商品」タイプの投稿のアーカイブページです。そのテンプレートはwoocommerce/archive-product.phpにあります。ループの前にクエリを前処理するには pre_get_posts アクション、商品アーカイブページにいることを認識するには conditional_tags 、商品カテゴリをフィルタリングするには taxonomy query を使用する必要があります。分類法「product_cat」に属します。たとえば、次のもの(テーマのfunctions.phpまたはプラグインに配置されている)は、商品カテゴリ 'type-1'の商品のみを表示します。 add_action('pre_get_posts','shop_filter_cat'); function shop_filter_cat($query) { if (!is_admin() && is_post_type_archive( 'product' ) && $query->is_main_query()) { $query->set('tax_query', array( array ('taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => 'type-1' ) ) ); } } 'operator' => not inを使用してカテゴリを除外することもでき、 'terms'は商品カテゴリのスラッグの配列にすることができます。クエリのカスタマイズの概要は http://www.billerickson.net/customize-the-wordpress-query/ です。