WordPress自定义投递查询排序不起作用

时间:2013-02-21 作者:Amit Wadhwa

我创建了一个自定义WP查询,以收集其中包含3个不同分类法值的产品,并使用以下方法按价格对其进行排序:

$my_products = new WP_Query(
            array(
                \'orderby\' => \'meta_value\',
                \'meta_key\' => \'regular_price\',
                \'order\' => \'ASC\',
                \'paged\' => $paged,
                \'post_type\' => \'product\',
                \'tax_query\' => array(
                    \'relation\' => \'AND\',
                    array(
                        \'taxonomy\' => \'pa_width\',
                        \'field\' => \'slug\',
                        \'terms\' => $width),
                    array(
                        \'taxonomy\' => \'pa_aratio\',
                        \'field\' => \'slug\',
                        \'terms\' => $aratio),
                    array(
                        \'taxonomy\' => \'pa_dia\',
                        \'field\' => \'slug\',
                        \'terms\' => $dia)
                )));
查询返回结果,基本正常,但有些产品出现在pof位置之外-请查看http://www.tyrebroker.ie/your-search/?width=245&aratio=40&dia=18

我不知道如何解决这个问题,因为我已经浏览了数据库和产品的详细信息,以了解可能导致问题的原因。

任何建议-谢谢

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

您的问题在于使用as orderby值meta_value 因此,从计算机的角度来看,顺序是正确的。要从人的角度获取当前订单,请尝试使用meta_value_num 相反您可以在此处阅读更多内容:https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

结束