You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅在首页(店铺页面)隐藏缺货产品的技术实现需求

WooCommerce 产品显示控制解决方案

针对你提出的「首页隐藏缺货产品,分类归档页正常显示」需求,可通过以下自定义代码实现,完全匹配你的场景:

核心代码

将以下代码添加到子主题的functions.php文件,或使用代码片段插件(如Code Snippets)运行:

add_action( 'pre_get_posts', 'hide_oos_on_shop_front' );
function hide_oos_on_shop_front( $query ) {
    // 仅对前台主店铺页面生效,排除后台及其他页面
    if ( ! is_admin() && $query->is_main_query() && is_shop() ) {
        $meta_query = $query->get( 'meta_query', [] );
        // 添加库存状态过滤:仅显示有货产品
        $meta_query[] = [
            'key'     => '_stock_status',
            'value'   => 'instock',
            'compare' => '=',
        ];
        $query->set( 'meta_query', $meta_query );
    }
}

逻辑说明

  • 精准生效范围:通过is_shop()仅锁定WooCommerce的主店铺首页,分类归档页(包括Tables、Recently Sold等)不受影响,完全符合你的示例需求
  • 高效查询修改:使用pre_get_posts钩子在查询执行前修改参数,比在产品循环里判断更节省资源
  • 兼容原有逻辑:保留原有查询的meta_query条件,不会和主题或其他插件的查询规则冲突

场景验证

  • 售罄且归属Tables+Recently Sold的产品:首页隐藏,Tables/Recently Sold分类页正常显示
  • 仅归属Recently Sold的售罄产品:首页隐藏,Recently Sold分类页正常显示
  • 有货产品:所有页面正常展示

注意事项

  • 优先使用子主题或代码片段插件添加代码,避免主题更新导致代码丢失
  • 操作前请备份网站,避免出现意外

内容的提问来源于stack exchange,提问作者Syl Mulder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:10:22