我需要过滤WooCommerce商店页面,只想显示需要定制产品元数据的产品。这是我在archive-product.php中找到的:
/ ** *钩子:……
您可以使用 do_action( 'woocommerce_shop_loop' );
do_action( 'woocommerce_shop_loop' );
function ctm_loop_53631963(){ global $post; $meta = get_post_meta($post->ID, 'meta_value_key') if($meta !== 'desired_value'){ continue; } } do_action('woocommerce_shop_loop', 'ctm_loop_53631963');
阅读有关wordpress操作的更多信息 插件API /动作参考
您可以使用挂钩的自定义功能 woocommerce_product_query_meta_query 过滤钩,你将在哪里更换 _the_meta_key 在下面的代码中,由您的目标 meta_key :
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' => 'EXIST' ); return $meta_query; }
代码位于活动子主题(或活动主题)的function.php文件中。经过测试和工作。
的 添加(与您上次评论相关): 强>
要使其适用于您需要使用的多个元值 的 'compare' => 'IN' 强> , 喜欢:
'compare' => 'IN'
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; }
WP meta_query文档