Tôi có một loại bài đăng tùy chỉnh "Danh sách" và tôi muốn nhận tất cả các Danh sách có trường tùy chỉnh gateway_value != 'Yes'và sắp xếp kết quả theo trường tùy chỉnh khác , location_level1_value. Tôi có thể làm cho các truy vấn hoạt động riêng lẻ, nhưng tôi không thể kết hợp chúng:
Truy vấn 1 (sắp xếp theo vị trí):
$wp_query = new WP_Query( array (
'post_type' => 'listing',
'post_status' => 'publish',
'posts_per_page' => '9',
'meta_key' => 'location_level1_value',
'orderby' => 'location_level1_value',
'order' => 'ASC',
'paged' => $paged
)
);
Truy vấn 2 (giá trị trường tùy chỉnh! = Có):
$wp_query = new WP_Query( array (
'post_type' => 'listing',
'posts_per_page' => '9',
'post_status' => 'publish',
'meta_key' => 'gateway_value',
'meta_value' => 'Yes',
'meta_compare' => '!=',
'paged' => $paged
)
);
Truy vấn kết hợp:
Tôi đã xem codex để được giúp đỡ về vấn đề này, nhưng truy vấn sau không hoạt động:
$wp_query = new WP_Query( array (
'post_type' => 'listing',
'posts_per_page' => '9',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'gateway_value',
'value' => 'Yes',
'compare' => '!='
),
array(
'key' => 'location_level1_value'
)
),
'orderby' => "location_level1_value",
'order' => 'ASC',
'paged' => $paged
)
);
Tôi đang làm gì sai với truy vấn kết hợp?
[CẬP NHẬT]: Vì vậy, bây giờ 3.1 đã được phát hành, truy vấn kết hợp ở trên vẫn không hoạt động. Tôi nhận được kết quả, chỉ là không được sắp xếp chính xác.
[CẬP NHẬT]: var_dump($wp_query->request)đưa ra những điều sau:
string(527) " SELECT SQL_CALC_FOUND_ROWS wp_7v1oev_posts.* FROM wp_7v1oev_posts
INNER JOIN wp_7v1oev_postmeta ON (wp_7v1oev_posts.ID = wp_7v1oev_postmeta.post_id)
INNER JOIN wp_7v1oev_postmeta AS mt1 ON (wp_7v1oev_posts.ID = mt1.post_id) WHERE 1=1 AND wp_7v1oev_posts.post_type = 'listing' AND (wp_7v1oev_posts.post_status = 'publish') AND wp_7v1oev_postmeta.meta_key = 'gateway_value' AND CAST(wp_7v1oev_postmeta.meta_value AS CHAR) != 'Yes' AND mt1.meta_key = 'location_level1_value' ORDER BY wp_7v1oev_posts.post_date DESC LIMIT 0, 9"
meta_querytham số là mới trong 3.1, dự kiến sẽ được phát hành rất sớm, nhưng phiên bản ổn định hiện nay vẫn là 3.0.5, mà không cần tham số này.