Запрос с несколькими ключами и условиями

#php #sql #wordpress

#php #sql #wordpress

Вопрос:

У меня есть два ключа, key1 и key 2, которые иногда не существуют.

Я бы хотел, чтобы :

  • сообщения, имеющие ключ 1, классифицируются в соответствии с ключом 1,
  • сообщения, которые имеют ключ 1 и ключ 2, классифицируются в соответствии с ключом 1,
  • сообщения, которые не имеют ключа 1, но имеют ключ 2, классифицируются в соответствии с ключом 2,
  • и после сообщений, у которых нет ключа.

Вот один из тестов, но который не дал ожидаемого результата:

 $query = new WP_Query([
    'meta_query' => [
        'relation' => 'OR',
        ['key' => 'key1', 'compare' => 'EXISTS'],
        ['key' => 'key1', 'compare' => 'NOT EXISTS'],
        ['key' => 'key2', 'compare' => 'EXISTS'],
        ['key' => 'key2', 'compare' => 'NOT EXISTS'],
    ],
    'order' => 'DESC',
    'orderby' => 'meta_value_num',
]);
 

Вы знаете, как это сделать?

Комментарии:

1. Под «классифицированным» вы подразумеваете порядок, в котором должны появляться сообщения?

2. Здесь вы найдете всевозможные примеры для вашего запроса: developer.wordpress.org/reference/classes/wp_query