我一直试图取消查询,但我无法做到。 我想查询“locales”类别中的所有帖子。然后按自定义字段值'provincia'对它们进行排序,然后按自定义字段值'localidad'对它们进行排序。我不知道我是否清楚,我需要对所有“语言环境”进行排序,例如美国,然后再对所有州进行排序。 我见过很多伎俩,但没有人工作过。
我认为我越接近就是:
$entradas = new WP_Query( array (
'post_type' => 'post',
'category_name' => 'locales',
'meta_query' => array(
array(
'key' => 'provincia'
),
array(
'key' => 'localidad'
)
),
'orderby' => 'meta_value meta_value',
'order' => 'ASC',
'nopaging' => true,
'posts_per_page' => -1
));
但当然它不起作用。有人知道解决方案吗?救救我!
谢谢!
答案 0 :(得分:0)
为此你需要调用自定义查询:
$querystr = "
SELECT * FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta pm1 ON p.ID = pm1.post_id
LEFT JOIN $wpdb->postmeta pm2 ON p.ID = pm2.post_id
LEFT JOIN $wpdb->term_relationships tr ON (p.ID = tr.object_id)
LEFT JOIN $wpdb->term_taxonomy tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN $wpdb->terms t ON (tt.term_id = t.term_id)
WHERE t.name = 'locales'
AND tt.taxonomy = 'category'
AND p.post_status = 'publish'
AND p.post_type = 'post'
AND pm1.meta_key = 'provincia'
AND pm2.meta_key = 'localidad'
ORDER BY pm1.meta_key,pm2.meta_key" ASC";