我正在使用以下功能,该功能应排除Woocommerce中特定类别的产品。该功能只能部分正常工作。在首页上,它仅将英文版的这些产品排除在外。在这里我想提一下,我正在使用WPML作为翻译插件。如果我改用德语或意大利语,则排除的产品仍然可见。但是,如果我导航到特定类别页面,则看不到产品。我也尝试了翻译类别的类别ID,但没有得到预期的结果。然后,我尝试通过过滤器获取WPML的ID。您可以查看我的代码并支持我以所有语言在首页上解决此问题吗?
function custom_pre_get_posts_query( $q ) {
$current_user = wp_get_current_user();
if ( !in_array( 'editor', $current_user->roles ) ) {
//$cat_id = icl_object_id( 200, 'product_cat', true, 'en' );;
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'term_id', //or 'slug'
'terms' => array( 200 ), // Don't display products in the clothing category on the shop page.
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );