【发布时间】:2016-08-26 18:54:26
【问题描述】:
这是我当前的 WP_Query 参数:
array(5) {
["posts_per_page"]=>
int(6)
["orderby"]=>
array(2) {
["uss_product_price"]=>
string(3) "ASC"
["uss_product_weight"]=>
string(4) "DESC"
}
["meta_query"]=>
array(3) {
["relation"]=>
string(3) "AND"
["sortprimary_clause"]=>
array(2) {
["key"]=>
string(17) "uss_product_price"
["compare"]=>
string(6) "EXISTS"
}
["sortsecondary_clause"]=>
array(2) {
["key"]=>
string(18) "uss_product_weight"
["compare"]=>
string(6) "EXISTS"
}
}
["paged"]=>
string(1) "1"
["post_type"]=>
string(7) "product"
}
这种新的 orderby 是在 WordPress 4.0 和 4.2 中引入的: https://make.wordpress.org/core/2014/08/29/a-more-powerful-order-by-in-wordpress-4-0/ https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/
查询基本上可以工作,但是产品是按 uss_product_price 和 uss_product_weight 的字符串值排序的。以前这个问题是通过在 WP_Query 中给出 meta_value_num 而不是 meta_value 来解决的: https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters
我希望结果按 uss_product_price(第一)和 uss_product_weight(第二)的数值排序。如何在仍然使用多个 orderby 参数的复杂性的同时告诉查询使用数值?
【问题讨论】:
标签: wordpress