Запрос с помощью meta_query
Всем добра. Пытаюсь сделать запрос и отрисовать таблицу, но не получается. Прошу помощи. Суть такова. На сайте загадки. Как человек отгадал загадку, я вписываю его ID в произвольное поле записи загадки. За отгадку начисляю баллы, тоже произвольным полем. Затем баллы конвертирую в рубли (или др. валюту) и выплачиваю (дата - произвольное поле).
Написал такой запрос
'meta_query' => array(
'relation' => 'AND',
array('key' => 'correct-answer', 'value' => '1', 'meta_compare' => '!='),
array('key' => 'pay', 'value' => 'Yes')
)
correct-answer - сюда вписывается ID отгадавшего человека. ID = 1, естественно мой, я хочу себя исключить из выборки.
pay - поле, которое говорит, что выплата произведена, остальные записи в таблице не нужны.
Загвоздка в том, что я всё равно присутствую в таблице. Не могу себя исключить! Помогите, пожалуйста.
Сработало вот так
'meta_query' => array(
'relation' => 'AND',
array('key' => 'correct-answer', 'value' => '1', 'compare' => '!='),
array('key' => 'pay', 'value' => 'Yes', 'meta_compare' => '=')
)
Не понял, чем отличается meta_compare от compare в этих случаях.
В
meta_queryнет параметраmeta_compare, естьcompare. Там идет или связка старых параметров:или один параметр
meta_compareс вложенными параметрами (массивами):Подробнее тут: http://wp-kama.ru/function/wp_query
Правильная запись вашего примера такая будет:
'meta_query' => array( 'relation' => 'AND', array('key' => 'correct-answer', 'value' => '1', 'compare' => '!='), array('key' => 'pay', 'value' => 'Yes') // по умолчанию: 'compare' => '=' )Спасибо, Тимур. Я к этому тоже пришёл. Ту статью прочел когда раз 5, тогда понял, что немного не так написал код. Благодарю за отзывчивость!