Wordpress WP_Query通过多个元条款进行排序

时间:2018-10-10 04:39:52

标签: php mysql wordpress woocommerce

我的在线商店中的商品具有长,宽,高。我正在制作一个功能,需要放大和缩小产品。但是,我需要以下条件:

长度>当前产品长度
宽度>当前产品宽度
高度>当前产品高度

将从当前加载的产品中提取值以用作比较。 (我使用示例值显示了我的结果)

我有以下查询:

$cc_args = array(
'post_type'         => 'product',
'post_status'       => 'published',
'posts_per_page'    => -1,
'tax_query'         => array(
    array(
        'taxonomy'  => 'product_cat',
        'field'     => 'term_id',
        'terms'     => 7,
        'operator'  => 'IN',
    )
),
'meta_query'        => array(
    'relation'          => 'AND',
    'length_clause'     => array(
        'key'               => 'pa_length',
        'value' => '13.56',
        'compare' => '>=',
        'type'    => 'NUMERIC',
    ),
    'width_clause'       => array(
        'key'               => 'pa_width',
        'value' => '5.76',
        'type'    => 'NUMERIC',
        'compare' => '>=',
    ),
    'height_clause'       => array(
        'key'               => 'pa_height',
        'value' => '11.70',
        'type'    => 'NUMERIC',
        'compare' => '>=',
    ),
),
'orderby' => array(
    'length_clause' => 'ASC',
    'width_clause' => 'ASC',
    'height_clause' => 'ASC',
),
);
$results = new WP_Query($cc_args);

我收到以下响应:(加粗是我要查找的响应)

基本上,此函数应按顺序返回所有三个维度较大的产品(ASC或DESC)。否则产品将不相关。

0:长度:17.10-宽度:7.50-高度:16.00
1:长度:18.00-宽度:18.00-高度:17.50
2:长度:19.63-宽度:19.63-高度:18.38
3:长度:20.56-宽度:10.97-高度:12.65
4:长度:22.06-宽度:17.00-高度:12.56
5:长度:22.06-宽度:17.00-高度:12.56
6:长度:23.70-宽度:24.00-高度:13.90
7:长度:24.00-宽度:24.00-高度:23.00
8:长度:28.00-宽度:21.00-高度:15.81
9:长度:29.13-宽度:20.69-高度:17.63
10:长度:30.25-宽度:25.25-高度:15.13
11:长度:34.95-宽度:18.45-高度:24.75
12:长度:34.50-宽度:24.50-高度:12.50
13:长度:40.98-宽度:12.92-高度:12.13
14:长度:42.00-宽度:22.00-高度:15.10
15:长度:47.57-宽度:24.07-高度:18.00

我找不到有关此类查询的太多信息。我知道使用mysqli()很容易排序,但是我需要使用WP_Query()。

谢谢!

0 个答案:

没有答案