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_query
tham 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.