以下代码隐藏WooCommerce存档页面,产品价格等于零或产品没有主图像:
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $query ) {
$meta_query = $query->get( 'meta_query' );
$meta_query[] = array(
'relation' => 'AND',
array(
'key' => '_thumbnail_id',
'value' => '0',
'compare' => '>',
),
array(
'key' => '_price',
'value' => '0',
'compare' => '>',
'type' => 'NUMERIC',
),
);
$query->set( 'meta_query', $meta_query );
}
字符串
但是,当我把一个小部件“产品”在主页上,它会显示所有的产品,即使价格为0或如果他们没有主图像,我不想要什么。我试图在自己的代码没有成功。
我错过了什么?
1条答案
按热度按时间zbdgwd5y1#
首先,由于您只对
meta_query
进行更改,因此woocommerce_product_query
action hook可以替换为woocommerce_product_query_meta_query
filter hook。然后,您将能够为产品widgetfilter hook使用相同的功能代码(如果需要,甚至可以为产品shortcodefilter hook)。
替换代码 (也处理产品小部件和简码):
字符串
代码放在你的子主题的functions.php文件中(或插件中)。测试和工作。