Запрос WP один и тот же запрос, другой синтаксис - один из которых не работает
У меня есть WP_Query, который хорошо работает:
$args = array(
'post_type' => 'product',
'meta_key' => 'product_subtype',
'meta_value'=> 'public',
'compare' => '='
);
Но так как я хочу найти несколько метаключей, я попробовал синтаксис "массива":
$args = array(
'post_type' => 'product',
'meta_query' => array(
array(
'meta_key' => 'product_subtype',
'meta_value' => 'public',
'compare' => '='
),
),
);
Но это не работает - он выдает мне все сообщения с 'post_type' = 'product' - хотя это тот же самый запрос. Я не знаю, почему. Может ли кто-нибудь указать на ошибку?
Я выполняю запрос следующим образом (как сказано во всех учебниках, которые я нашел)
$the_query = new WP_Query( $args );
Как я уже сказал, первый способ работает, и я получаю только продукты с "product_subtype = public" второй игнорирует массив мета-запросов. Но почему?
1 answers
Как упоминалось в комментарии, вы неправильно используете WP_Query
. Здесь нет большой ошибки, но если вы пройдете через Кодекс для WP_Query, Вы заметите, что массив meta_query
используется без префикса meta_
.
Поэтому, если вы удалите префикс meta_
из своего запроса, он будет работать так, как ожидалось.