您可以使用挂钩的自定义函数woocommerce_product_query_meta_query
过滤钩,您将在其中更换_the_meta_key
在下面的代码中,根据您的目标meta_key
:
add_filter( 'woocommerce_product_query_meta_query', 'show_only_products_with_specific_metakey', 10, 2 );
function show_only_products_with_specific_metakey( $meta_query, $query ) {
// Only on shop pages
if( ! is_shop() ) return $meta_query;
$meta_query[] = array(
'key' => '_the_meta_key',
'compare' => 'EXISTS'
);
return $meta_query;
}
代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并工作。
添加(与您最后的评论相关):
要使其适用于多个元值,您需要使用'compare' => 'IN'
, like:
add_filter( 'woocommerce_product_query_meta_query', 'show_only_products_with_specific_metakey', 10, 2 );
function show_only_products_with_specific_metakey( $meta_query, $query ) {
// Only on shop pages
if( ! is_shop() ) return $meta_query;
$meta_query[] = array(
'key' => '_the_meta_key',
'value' => array('L','XL'),
'compare' => 'IN'
);
return $meta_query;
}
代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并工作。
WP 元查询文档 https://developer.wordpress.org/reference/classes/wp_meta_query/