使用WP_QUERY获取与价格范围匹配的产品,并提供其他必需的产品属性

时间:2019-03-21 作者:benhen31

我有成功返回价格范围内产品的代码。然而,我还需要按一个名为“size”的产品属性进行过滤。

因此,我应该在给定的价格范围内获得一定尺寸的所有产品。

我的代码适用于价格范围部分,但我无法找到添加尺寸部分的正确方法。

这是我的代码:

$params = array(
    \'posts_per_page\' => 20,
    \'post_type\' => array(\'product\', \'product_variation\'),
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        array(
            array(
                \'key\' => \'_price\',
                \'value\' => $_POST[\'product_price_min\'],
                \'compare\' => \'>=\',
                \'type\' => \'NUMERIC\'
            ),
            array(
                \'key\' => \'_price\',
                \'value\' => $_POST[\'product_price_max\'],
                \'compare\' => \'<=\',
                \'type\' => \'NUMERIC\'
            )

        ),
        array(
            array(
                            \'taxonomy\'        => \'pa_size\',
                            \'field\'           => \'slug\',
                            \'terms\'           =>  $_POST[\'size\'],
                            \'operator\'        => \'IN\',

            )
        )
    )
);


$products = new WP_Query($params);

1 个回复
最合适的回答,由SO网友:mrben522 整理而成

你把你的meta querytax query. 尝试以下操作:

$params = array(
    \'posts_per_page\' => 20,
    \'post_type\' => array(\'product\', \'product_variation\'),
    \'meta_query\' => array(
        array(
            \'key\' => \'_price\',
            \'value\' => $_POST[\'product_price_min\'],
            \'compare\' => \'>=\',
            \'type\' => \'NUMERIC\'
        ),
        array(
            \'key\' => \'_price\',
            \'value\' => $_POST[\'product_price_max\'],
            \'compare\' => \'<=\',
            \'type\' => \'NUMERIC\'
        ),
    ),
    \'tax_query\' => array(
        array(
        \'taxonomy\'        => \'pa_size\',
        \'field\'           => \'slug\',
        \'terms\'           =>  $_POST[\'size\'],
        \'operator\'        => \'IN\',
        )
    )
);


$products = new WP_Query($params);

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post