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

WPBakery WooCommerce产品循环短码修改:隐藏缺货产品失败求助

解决WPBakery Product Loop隐藏缺货产品的问题

Hey Diego, 我来帮你搞定这个问题!你之前直接在查询参数里加stock_status没生效,是因为WooCommerce的库存状态并不是WP_Query的原生参数,它存在产品的post meta(_stock_status)里,得用meta_query来过滤才行。下面给你两种可行的解决方法:

方法一:直接修改组件代码里的查询参数

把你原来的代码改成这样,添加meta_query来筛选库存状态为「有库存」的产品:

$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
switch ($display) {
    case 'recent':
        $args = array(
            'post_type' => 'product',
            'post_status' => 'publish',
            'paged' => $paged,
            'meta_query' => array(
                array(
                    'key' => '_stock_status',
                    'value' => 'instock',
                    'compare' => '='
                )
            ),
            // 保留原有的排序规则(按最新发布排序)
            'orderby' => 'date',
            'order' => 'DESC'
        );
        break;
    // 其他case分支保持不变
}

方法二:用钩子修改(避免主题/插件更新覆盖代码)

如果直接改WPBakery组件代码担心后续更新被覆盖,推荐用WPBakery的vc_build_query_args钩子来修改查询。把这段代码加到你的主题functions.php文件里就行:

add_filter('vc_build_query_args', 'exclude_out_of_stock_vc_product_loop', 10, 2);
function exclude_out_of_stock_vc_product_loop($query_args, $query_settings) {
    // 只针对「Recent」排序的Product Loop生效
    if (isset($query_settings['display']) && $query_settings['display'] === 'recent') {
        $query_args['meta_query'][] = array(
            'key' => '_stock_status',
            'value' => 'instock',
            'compare' => '='
        );
    }
    return $query_args;
}

额外提示:处理可变产品

如果你的店铺有可变产品(Variable Product),上面的代码只会筛选简单产品的库存状态。要是想显示「至少有一个变体有库存」的可变产品,可以把meta_query改成这样:

'meta_query' => array(
    'relation' => 'OR',
    // 简单产品有库存
    array(
        'key' => '_stock_status',
        'value' => 'instock',
        'compare' => '='
    ),
    // 可变产品至少有一个变体库存>0
    array(
        'key' => '_stock',
        'value' => 0,
        'compare' => '>',
        'type' => 'numeric'
    )
)

这样就能同时覆盖简单产品和可变产品的场景啦~

内容的提问来源于stack exchange,提问作者Diego Gaona

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:18:42