Thứ tự WordPress theo nhiều giá trị meta

Tôi đang sử dụng một vòng lặp tùy chỉnh để hiển thị các sự kiện của mình trên một trang, tôi thấy ổn khi sắp xếp theo ngày bắt đầu sự kiện bằng cách sử dụng bên dưới

$args = array( 
    'post_type' => 'event',
    'order' => 'ASC',
    'orderby' => 'meta_value',
    'meta_key' => '_event_start_date');
$loop = new WP_Query( $args );

Nhưng tùy chọn meta_key chỉ cho phép một giá trị. Làm cách nào để sử dụng hai giá trị (

$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );
1 và
$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );
2)?

Giải pháp tốt nhất

Đây là thứ mà WordPress đã thêm hỗ trợ trong 4. 2. https. //chế tạo. báo chí. org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/

Trong trường hợp của bạn, có lẽ bạn sẽ muốn làm điều gì đó như thế này

$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );

Giải pháp liên quan

Python – Cách sắp xếp danh sách từ điển theo giá trị của từ điển

Hàm nhận tham số

$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );
4

newlist = sorted(list_to_be_sorted, key=lambda d: d['name']) 

Ngoài ra, bạn có thể sử dụng thay vì tự xác định chức năng

from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name')) 

Để đầy đủ, hãy thêm

$args = array(
    'post_type'  => 'event',
    'meta_query' => array(
        'relation' => 'AND',
        'event_start_date_clause' => array(
            'key'     => '_event_start_date',
            'compare' => 'EXISTS',
        ),
        'event_start_time_clause' => array(
            'key'     => '_event_start_time',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => array(
        'event_start_date_clause' => 'ASC',
        'event_start_time_clause' => 'ASC',
    ),
);

$loop = new WP_Query( $args );
6 để sắp xếp theo thứ tự giảm dần

________số 8_______

Python – Cách sắp xếp từ điển theo giá trị

Trăn 3. 7+ hoặc CPython 3. 6

Dicts bảo toàn thứ tự chèn trong Python 3. 7+. Tương tự trong Python 3. 6, nhưng đó là chi tiết triển khai

>>> x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
>>> {k: v for k, v in sorted(x.items(), key=lambda item: item[1])}
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}

hoặc là

>>> dict(sorted(x.items(), key=lambda item: item[1]))
{0: 0, 2: 1, 1: 2, 4: 3, 3: 4}

Python cũ hơn

Không thể sắp xếp một từ điển, chỉ để có được một đại diện của một từ điển được sắp xếp. Từ điển vốn đã không có thứ tự, nhưng các loại khác, chẳng hạn như danh sách và bộ dữ liệu, thì không. Vì vậy, bạn cần một kiểu dữ liệu được sắp xếp để biểu thị các giá trị được sắp xếp, đây sẽ là một danh sách—có thể là một danh sách các bộ

Meta_value_num là gì?

'meta_value_num' - Sắp xếp theo giá trị meta số (có sẵn với Phiên bản 2. số 8). Cũng lưu ý rằng 'meta_key=keyname' cũng phải có trong truy vấn. Giá trị này cho phép sắp xếp theo số như đã lưu ý ở trên trong 'meta_value'. 'post__in' - Giữ nguyên thứ tự ID bài đăng được cung cấp trong mảng post__in (có sẵn với Phiên bản 3. 5).

Truy vấn meta trong Wordpress là gì?

WP_Meta_Query là một trình trợ giúp cho phép các lớp truy vấn chính, chẳng hạn như WP_Query và WP_User_Query, lọc kết quả của chúng theo siêu dữ liệu đối tượng, bằng cách tạo các mệnh đề con THAM GIA và WHERE được đính kèm vào chuỗi truy vấn SQL chính