Sắp xếp theo nhiều khóa meta và giá trị meta [đã đóng]


15

Làm cách nào tôi có thể đặt nhiều khóa meta theo giá trị meta, có ai có thể cho tôi một vài ví dụ không?


4
Chào mừng bạn đến với WPSE - để chúng tôi giúp bạn, bạn cần giúp chúng tôi. Bạn có thể mô tả chi tiết hơn những gì bạn đang cố gắng làm và có thể đăng một số mẫu mã.
TheDeadMedic

Câu trả lời:


30

meta_querylà một mảng các mệnh đề meta. Ví dụ:

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'state',
            'value' => 'Wisconsin',
        ),
        array(
            'key' => 'city',
            'compare' => 'EXISTS',
        ), 
    ),
) );

Bạn có thể sử dụng một mảng kết hợp, với một khóa cho mỗi mệnh đề meta:

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'state_clause' => array(
            'key' => 'state',
            'value' => 'Wisconsin',
        ),
        'city_clause' => array(
            'key' => 'city',
            'compare' => 'EXISTS',
        ), 
    ),
) );

Sau đó, bạn có thể sử dụng các khóa đó trong order_byđối số, với một:

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'state_clause' => array(
            'key' => 'state',
            'value' => 'Wisconsin',
        ),
        'city_clause' => array(
            'key' => 'city',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => 'city_clause', // Results will be ordered by 'city' meta values.
) );

Hoặc nhiều mệnh đề:

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'state_clause' => array(
            'key' => 'state',
            'value' => 'Wisconsin',
        ),
        'city_clause' => array(
            'key' => 'city',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array( 
        'city_clause' => 'ASC',
        'state_clause' => 'DESC',
    ),
) );

Ví dụ được lấy từ bài đăng này trong blog Makeresres Core.


đừng quên thêm loại khóa / giá trị meta. Nó sẽ ảnh hưởng đến kết quả. theo mặc định, wp sẽ coi meta của bạn như một chuỗi.
Alexander Ivashchenko

2
Nhưng điều gì sẽ xảy ra nếu tôi không muốn chỉ trả lại kết quả trong đó tiểu bang Wisconsin? Tôi muốn tất cả các tiểu bang được trả lại và tôi muốn các hàng nơi có thể có hoặc không có thành phố và vẫn đặt hàng theo 2 trường đó. ví dụ: không có mệnh đề WHERE nào cả - chỉ là ĐẶT HÀNG B .NG.
Đêm giao thừa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.