如何通过Post Id隐藏WooCommerce商店页面的指定商品
通过指定商品ID隐藏WooCommerce商店页面商品
实现代码
直接将以下代码添加到当前活跃主题的functions.php文件末尾,或通过自定义代码片段插件添加即可生效:
add_action( 'woocommerce_product_query', 'hide_specific_products_from_shop', 99 ); function hide_specific_products_from_shop( $query ) { // 仅前台商店页主查询生效,不会影响后台和商品详情页访问 if ( is_shop() && $query->is_main_query() && ! is_admin() ) { // 替换为你需要隐藏的商品ID,多个ID用英文逗号分隔 $exclude_ids = array( 12, 34, 56 ); $query->set( 'post__not_in', $exclude_ids ); } }
可调整配置说明
- 如需同时在商品分类页、标签页、搜索结果页也隐藏指定商品,将条件判断中的
is_shop()修改为以下内容即可:is_shop() || is_product_category() || is_product_tag() || is_search() - 代码中的
array( 12, 34, 56 )替换为你实际要隐藏的商品ID,查询商品ID的方式为:后台商品列表中鼠标悬停在对应商品标题上,浏览器底部即可看到post=后面的数字,即为商品ID。
注意事项
- 该方法仅隐藏商品列表中的商品展示,用户仍可通过直接输入商品URL访问对应页面,如需完全下架商品直接在商品编辑页设置为草稿即可。
- 若添加代码后不生效,可尝试清空WooCommerce缓存和站点缓存后再测试。
内容的提问来源于stack exchange,提问作者Bhuvanagiri Gireesh
相关产品推荐
相关产品推荐

