Sắp xếp query theo nhiều meta key và meta value khác nhau

Nếu như sinh nhật không phải là một giá trị mà phân làm 3 thì chúng ta có thể sắp xếp theo năm, tháng và ngày.

$orderby = $_GET['orderby'] ?? '';

if ( 'birthday' == $orderby ) {
    $order = $_GET['order'] ?? 'ASC';

    //$query->set( 'order', $order );

    $query->set( 'meta_query', array(
        'relation'    => 'AND',
        'birth_year'  => array(
            'key'     => 'birth_year',
            'compare' => 'EXISTS'
        ),
        'birth_month' => array(
            'key'     => 'birth_month',
            'compare' => 'EXISTS'
        ),
        'year_day'    => array(
            'key'     => 'birth_day',
            'compare' => 'EXISTS'
        )
    ) );

    $query->set( 'orderby', array(
        'birth_year'  => $order,
        'birth_month' => $order,
        'birth_day'   => $order
    ) );
}

 

5/5 - (1 bình chọn)

Lại Đình Cường

Tôi làm quen và phát triển WordPress từ năm 2008, cho đến nay thì đã có hơn 13 năm kinh nghiệm, thật không thể tin được. Tôi có đam mê và dành nhiều thời gian làm việc với WordPress mỗi ngày, hiện tại tôi đang phát triển giao diện và plugin cho WordPress.

Nếu bạn đang cần người làm trang web bằng WordPress? Hãy liên hệ với tôi ngay để được tư vấn nhé.