@zzmaster

Как добавить в wp_query поиск по мета полям в Wordpress?

Именно - добавить, при обработке плагином.
У меня есть такой код

add_filter( 'pre_get_posts', array($this,'posts_filter') );

	public function posts_filter( $query )
	{
		if ( $this->have_meta_search) {

			$val = $_GET['meta_val'];

			// вариант 1
			//$query->query_vars['meta_key'] = $_GET['meta_name'];
			//$query->query_vars['meta_value'] = $val; 

			// вариант 2
				$query->meta_query = array(array(
					'key' => $_GET['meta_name'],
					'value' => '%'.$val.'%',
					'compare' => 'LIKE'
				));

		}
	}


мета поля не появляются в sql запросе (смотрю Query Monitor-ом). а если использовать вариант 1 - то появляются, но с вариантом 1 непонятно как задать compare.
  • Вопрос задан
  • 604 просмотра
Решения вопроса 1
@zzmaster Автор вопроса
вариант найден, сорри за беспокойство
$query->query_vars['meta_query'] = array(array(
					'key' => $_GET['meta_name'],
					'value' => $val,
					'compare' => 'LIKE'
				));


и вордпресс даже сам обрамляет значение процентами
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы