Упорядкувати за кількома мета-ключами та мета-значеннями [закрито]


16

Як я можу встановити порядок декількох мета-ключів за мета-значенням, чи може хтось надати мені якийсь приклад?


4
Ласкаво просимо до WPSE - щоб ми допомогли вам, ви повинні нам допомогти. Чи можете ви описати більш докладно, що ви намагаєтесь зробити, і, можливо, опублікуйте кілька зразків коду.
TheDeadMedic

Відповіді:


32

meta_query- це масив мета-пропозицій. Наприклад:

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

Ви можете використовувати асоціативний масив з ключем для кожного мета-пункту:

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

Тоді ви можете використовувати ці ключі в order_byаргументі з одним:

$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.
) );

Або більше статей:

$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',
    ),
) );

Приклад, взятий з цієї публікації, в блозі Make WordPres Core.


не забудьте додати тип мета-ключа / значення. це вплине на результати. за замовчуванням wp трактуватиме вашу мета як рядок.
Олександр Іващенко

3
Але що робити, якщо я не хочу повертати результати лише там, де штат Вісконсін? Я хочу, щоб усі штати були повернені, і я хочу, щоб рядки там, де може бути місто, а можуть і не бути, і все ще замовляли ці 2 поля. наприклад, взагалі немає пункту WHERE - лише ЗАМОВЛЕННЯ.
Фелікс Єва
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.