我想要只在/../shop页面上列出两个特定类别的产品。所有其余的都需要使用我在网站上已有的按钮进行搜索或找到。
我尝试过几个不同的代码片段,但似乎没有什么可以做我想要的。
任何帮助都会有很多学徒, 非常感谢 路易斯
答案 0 :(得分:2)
在WooCommerce页面上解释过,您只需要根据需要进行更改。
https://docs.woocommerce.com/document/exclude-a-category-from-the-shop-page/
在您的情况下,将操作员更改为" IN"和
terms =>数组('刀')
到
terms =>数组('你的cat-slug-1','你的cat-slug-2'),
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() ) {
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'your-cat-slug-1' , 'your-cat-slug-2' ), // Display products in the your-cat-slug-1/your-cat-slug-2 category on the shop page
'operator' => 'IN'
)));
}
remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
}
将此代码放入Child-themes functions.php文件中。
答案 1 :(得分:1)
我了解您希望仅显示/shop
页面上的特定类别?因此,请使用下面的代码,将product_cat更改为您需要的代码...
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'
)
)
);
}
}