按 ID 过滤产品 Woocommerce

我正在尝试更改 Woocommerce 商店(存档)的查询。我搜索并找到了很多片段,但还没有找到我的解决方案。所以我希望这里有人可以帮助我。


我想要的是隐藏由单独功能定义的产品选择。该函数返回一个产品/帖子 ID 的数组。我不知道为什么这不起作用...


function shop_show_products_by_id( $meta_query, $query ) {

    // Only on shop archive pages

    if( is_admin() || is_search() || ! is_shop() ) return $meta_query;


    $meta_query[] = array(

        'post__not_in' => gives_product_ids_not_to_show()

    );


    return $meta_query;

}

add_filter( 'woocommerce_product_query_meta_query', 'shop_show_products_by_id', 10, 2 );


弑天下
浏览 92回答 1
1回答

大话西游666

post__not_in不是元查询...您可以使用woocommerce_product_querywhich is本质上排除此类产品pre_get_posts。如果gives_product_ids_not_to_show()返回一个整数数组,你可以在后面替换 array()post__not_infunction shop_hide_products_by_id( $q ) {    // Only on shop archive pages    if( is_shop() ){        $q->set('post__not_in' , array(89,2182)); // use integers    }}add_filter( 'woocommerce_product_query', 'shop_hide_products_by_id' );
打开App,查看更多内容
随时随地看视频慕课网APP