Intereting Posts
Файл Js не добавляется с помощью этого кода в functions.php Страница медиа-библиотеки очень медленно, загружая изображения с полным качеством Постоянная ссылка не работает после завершения foreach Поиск страницы индекса с помощью панели администратора WordPress 2 пользовательских типа сообщений в 1 пользовательской таксономии Шаблоны пользовательских страниц WordPress запрещает изменение страницы на определенную постоянную ссылку Почему не работает функция jquery show () в wordpress? Как переопределить или изменить функцию в form.php в плагине Как показать только самую последнюю запись в моем архиве почтового типа? Справка по заказу пользовательского запроса по заголовку, по возрастанию Как изменить поле в базе данных через кнопку отправки или флажок? Могу ли я установить таймер для публикации страниц? Удалить href tag из wp_postmeta в 34 000 сообщений? Почему этот цикл не работает?

Запросить настраиваемые типы сообщений с помощью флажков

У меня есть Custom Post Type (Курсы) с полем «Course-location», которое является флажком. Я хотел бы отфильтровать страницу списка с отмеченными элементами.

Приведенный ниже код работает, когда я устанавливаю флажок ONE, однако он не работает с элементами с несколькими элементами.

Как я могу

OR

работать, чтобы вернуть много курсов?

КОД

$searchArray = array(); $searchArray[] = array('relation' => 'OR',); // loop over checked checkboxes if(!empty($_POST['course_location'])) { foreach($_POST['course_location'] as $check) { // echo '<h1>'.$check.'</h1>'; $searchArray[] = array('key' => 'course_location','value' => $check,'compare' => 'LIKE',); } } $args = array( 'post_type' => array( 'course' ), 'posts_per_page' => 25, 'meta_query' => $searchArray ); $wp_query = new WP_Query($args); 

FORM

 <form name="courseSearch" id="courseSearch" method="post"> los-angeles-county: <input type="checkbox" name="course_location[]" value="los-angeles-county" /><br/> orange-county: <input type="checkbox" name="course_location[]" value="orange-county" /><br/> test: <input type="checkbox" name="course_location[]" value="test" /><br/> <input type="submit"> </form> 

Solutions Collecting From Web of "Запросить настраиваемые типы сообщений с помощью флажков"

Вы неправильно meta_query . Это близко, но не совсем правильно.

 $searchArray = array(); $searchArray = array('relation' => 'OR',); // here is the change // loop over checked checkboxes if(!empty($_POST['course_location'])) { foreach($_POST['course_location'] as $check) { // echo '<h1>'.$check.'</h1>'; $searchArray[] = array('key' => 'course_location','value' => $check,'compare' => 'LIKE',); } } 

Как вы его написали, вы получали:

 array(3) { [0]=> array(1) { ["relation"]=> string(2) "OR" } [1]=> array(3) { ["key"]=> string(15) "course_location" ["value"]=> string(1) "a" ["compare"]=> string(4) "LIKE" } [2]=> array(3) { ["key"]=> string(15) "course_location" ["value"]=> string(1) "b" ["compare"]=> string(4) "LIKE" } } 

И вам нужно:

 array(3) { ["relation"]=> string(2) "OR" [0=> array(3) { ["key"]=> string(15) "course_location" ["value"]=> string(1) "a" ["compare"]=> string(4) "LIKE" } [1]=> array(3) { ["key"]=> string(15) "course_location" ["value"]=> string(1) "b" ["compare"]=> string(4) "LIKE" } }