WP_Query 不按价格元值排序

皮尔保罗·埃尔科利

我有这个 wp_query $args 来从 woocommerce 中获取产品,通过我用于过滤器的一些 $_GET 参数来查询它们。实际上我的问题是按价格排序根本不起作用。我多次使用这种属性,但实际上在这里不起作用。我在这里粘贴我的代码。

if ($_GET['filter_pietre'] != -1 && $_GET['filter_pietre'] != NULL) {
    $pietre_operator = 'IN';
} else {
    $pietre_operator = 'NOT IN';
}
if ($_GET['filter_metals'] != -1 && $_GET['filter_metals'] != NULL) {
    $metals_operator = 'IN';
} else {
    $metals_operator = 'NOT IN';
}
if ($_GET['filter_finitura'] != -1 && $_GET['filter_finitura'] != NULL) {
    $finishes_operator = 'IN';
} else {
    $finishes_operator = 'NOT IN';
}
if ($_GET['filter_coloresmalto'] != -1 && $_GET['filter_coloresmalto'] != NULL) {
    $pa_coloresmalto = 'IN';
} else {
    $pa_coloresmalto = 'NOT IN';
}
if ($_GET['filter_ispirazione'] != -1 && $_GET['filter_ispirazione'] != NULL) {
    $pa_ispirazione = 'IN';
} else {
    $pa_ispirazione = 'NOT IN';
}
$params = array(
        'posts_per_page' => -1,
        'post_type' => 'product',
        'meta_query' => array(
            //filters
            'relation' => 'AND',
            array(
                'key' => '_stock_status',    
                'value' => 'instock'
            ),
            array(
                'meta_key' => '_price',
                'orderby'  => 'meta_value_num',
                'order' => 'ASC',
                'type' => 'NUMERIC'
            ),
        ),
        'tax_query' => array(
            'relation' => 'AND',
            array(
                'taxonomy' => 'product_cat',
                'field' => 'id',
                'terms' => $term_id
            ),
            array(
                'taxonomy' => 'pa_pietre',
                'terms' => $_GET['filter_pietre'],
                'field' => 'slug',
                'operator' => $pietre_operator
            ),
            array(
                'taxonomy' => 'pa_metals',
                'terms' => $_GET['filter_metals'],
                'field' => 'slug',
                'operator' => $metals_operator
            ),
            array(
                'taxonomy' => 'pa_finishes',
                'terms' => $_GET['filter_finitura'],
                'field' => 'slug',
                'operator' => $finishes_operator
            ),
            array(
                'taxonomy' => 'pa_coloresmalto',
                'terms' => $_GET['filter_coloresmalto'],
                'field' => 'slug',
                'operator' => $pa_coloresmalto
            ),
            array(
                'taxonomy' => 'pa_ispirazione',
                'terms' => $_GET['filter_ispirazione'],
                'field' => 'slug',
                'operator' => $pa_ispirazione
            )
        ),
    );
$wc_query = new WP_Query($params);

实际上按任何其他属性排序可以正常工作,但不是价格。提前致谢。

迪马拉

你需要对你的论点进行一些修改。请使用以下之一。

   $params = array(
    'posts_per_page' => -1,
    'post_type' => 'product',
    'orderby'   => 'meta_value_num',
    'meta_key'  => '_price',
    'order' => 'asc',
    'meta_query' => array(
        //filters
        'relation' => 'AND',
        array(
            'key' => '_stock_status',    
            'value' => 'instock'
        )

    ),
    'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'product_cat',
            'field' => 'id',
            'terms' => $term_id
        ),
        array(
            'taxonomy' => 'pa_pietre',
            'terms' => $_GET['filter_pietre'],
            'field' => 'slug',
            'operator' => $pietre_operator
        ),
        array(
            'taxonomy' => 'pa_metals',
            'terms' => $_GET['filter_metals'],
            'field' => 'slug',
            'operator' => $metals_operator
        ),
        array(
            'taxonomy' => 'pa_finishes',
            'terms' => $_GET['filter_finitura'],
            'field' => 'slug',
            'operator' => $finishes_operator
        ),
        array(
            'taxonomy' => 'pa_coloresmalto',
            'terms' => $_GET['filter_coloresmalto'],
            'field' => 'slug',
            'operator' => $pa_coloresmalto
        ),
        array(
            'taxonomy' => 'pa_ispirazione',
            'terms' => $_GET['filter_ispirazione'],
            'field' => 'slug',
            'operator' => $pa_ispirazione
        )
    ),
);
 $wc_query = new WP_Query($params);

您已经在应该在外部的元查询中添加了 order by。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WP_Query按术语排序类别

来自分类Dev

按发布元排序WP_Query结果

来自分类Dev

如何对wp_query的结果进行排序

来自分类Dev

WP_Query按标签搜索

来自分类Dev

WordPress的WP_Query类别__按顺序

来自分类Dev

WP_Query不返回任何结果

来自分类Dev

如何在WP_Query中按日期排序?

来自分类Dev

从 WP_Query 中的日期元查询中获取月份

来自分类Dev

ACF WP_Query 按分类字段过滤

来自分类Dev

WP_Query中的自定义字段值

来自分类Dev

从简码 atts 数组值返回 WP_Query 对象

来自分类Dev

在自定义wp_query循环中按价格订购产品

来自分类Dev

带有2个元键和元值数组的WP_Query

来自分类Dev

如何使用WP_Query对post_IDs键进行排序而不对值进行排序

来自分类Dev

带有ID数组的WP_Query按数组顺序排序

来自分类Dev

按ACF日期选择器对WP_Query进行排序

来自分类Dev

在WP_Query中按自定义字段(数字)排序

来自分类Dev

如何使用不同的元值简化多个WP_Query

来自分类Dev

WooCommerce使用WP_Query搜索价格范围之间的产品

来自分类Dev

WP_Query不适用于元数据字段

来自分类Dev

Wp_Query:通过比较两个元键来过滤帖子

来自分类Dev

WP_Query忽略了两个元键之一

来自分类Dev

PHP:使用WP_Query对基于AJAX的键的多维数组进行排序

来自分类Dev

WP_Query:如何通过两个meta_keys排序?

来自分类Dev

排序-使用meta_value_num的wp_query不起作用

来自分类Dev

PHP:使用WP_Query对基于AJAX的键的多维数组进行排序

来自分类Dev

是否可以在自定义 WP_Query 中添加下拉产品排序?

来自分类Dev

自定义 wp_query CPT 上的简单排序下拉列表

来自分类Dev

WP_Query按类别ID获取帖子可返回所有类别

Related 相关文章

热门标签

归档