Intereting Posts
Могу ли я иметь нескольких пользователей базы данных в WordPress? Вывод таксономии ограничения в условном выражении Как изменить вложение вложений с имени на id is_home не влияет на контент Резервное копирование другой базы данных с помощью плагина BackUpWordPress Отключить все скрипты и стили из галереи NextGEN? Как лучше всего создать слайдер jQuery, чтобы отобразить собственную галерею wordpress? Репозиторий WordPress запрещает мне вызывать wp-load.php в файле, отличном от WordPress. Как я могу ограничить количество символов, используемых для описания в сетке категорий управления? Как удалить все пункты меню панели администратора? Поиск добавления тега заголовка в Feature Images на WP Невозможно применить пользовательский CSS к IE в теме Поиск сообщений, в которых отсутствует определенное настраиваемое поле Сложный диапазон дат с WP_Query и МЕЖДУ Запуск инициализации плагина

Запросить несколько метазначений

Я работаю над фильтром checkbox для запроса сообщений по проверенным значениям. См. Эту ссылку ( EDIT : Как видите, в этой ссылке есть только 2 сообщения, как только пользователь проверяет «MINI», он получает хороший результат, как только пользователь проверяет «MINI» и «COMPACT», это не дает результатов вместо 2 сообщений). Теперь он работает, если пользователь проверяет только 1 значение. Как только пользователь проверит более одного, он не даст никаких результатов. Я использую следующий код мета-запроса (это часть более длинного кода, поэтому есть оператор if):

if (gap_meta_values($key, $value)) { $args['meta_query'][] = array( 'key' => $key, 'value' => $value, 'compare' => 'LIKE' ); 

Таким образом, это работает, если имеется только 1 метазначение. Однако, если есть несколько значений, это не сработает. Поэтому я попробовал несколько вещей, чтобы заставить его работать, я был жестким, потому что между ключом и ценностью нет никакой связи. Поэтому я попробовал это:

 if (gap_meta_values($key, $value)) { $args['meta_query'][] = array( 'relation' => 'OR', array ( 'key' => $key, 'value' => $value, 'compare' => 'LIKE' ) ); } 

Но это не работает. Как это сделать, чтобы он запрашивал все сообщения из проверенных значений? Спасибо за ваш ответ.

Solutions Collecting From Web of "Запросить несколько метазначений"

Вы код генерирует разбитый meta_query . Вы создадите код таким образом:

 array(1) { ["meta_query"]=> array(2) { [0]=> array(2) { ["relation"]=> string(2) "OR" [0]=> array(3) { ["key"]=> string(4) "test" ["value"]=> string(10) "test_value" ["compare"]=> string(4) "LIKE" } } } 

Он должен выглядеть так:

 array(1) { ["meta_query"]=> array(2) { ["relation"]=> string(2) "OR" [0]=> array(3) { ["key"]=> string(4) "test" ["value"]=> string(10) "test_value" ["compare"]=> string(4) "LIKE" } } } 

Проблема здесь в квадратных скобках: $args['meta_query'][] Это неверно. Чтобы объединить ваши значения, сделайте что-то вроде этого:

 $meta_q = array(); $key ='test'; $value='test_value'; if (!empty($key) && !empty($value)) { $meta_q[] = array( 'key' => $key, 'value' => $value, 'compare' => 'LIKE' ); } $key2 ='test'; $value2='test_value'; if (!empty($key2) && !empty($value2)) { $meta_q[] = array( 'key' => $key2, 'value' => $value2, 'compare' => 'LIKE' ); } $args = array( 'relation' => 'OR', 'meta_query' => $meta_q, ); var_dump($args);