WordPress как на ладони
wordpress jino

Запрос с помощью 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 - поле, которое говорит, что выплата произведена, остальные записи в таблице не нужны.

Загвоздка в том, что я всё равно присутствую в таблице. Не могу себя исключить! Помогите, пожалуйста.

Заметки к вопросу:
campusboy 3.2 года назад

Сработало вот так

'meta_query' => array(
			'relation' => 'AND',
			array('key' => 'correct-answer', 'value' => '1', 'compare' => '!='),
			array('key' => 'pay', 'value' => 'Yes', 'meta_compare' => '=')
		)

Не понял, чем отличается meta_compare от compare в этих случаях.

0
campusboy
2660
3.2 года назад
  • 1
    Kama5064

    В meta_query нет параметра meta_compare, есть compare. Там идет или связка старых параметров:

    meta_key
    meta_value
    meta_value_num 
    meta_compare

    или один параметр meta_compare с вложенными параметрами (массивами):

    key 
    value 
    compare 
    type 
    relation

    Подробнее тут: 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' => '='
    )
    campusboy 3.2 года назад

    Спасибо, Тимур. Я к этому тоже пришёл. Ту статью прочел когда раз 5, тогда понял, что немного не так написал код. Благодарю за отзывчивость!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.