Intereting Posts
Штрих-код для вывода файлов wp_get_archives отображается поверх сообщения Как добавить скрипт в админ с помощью script-loader.php? Зарегистрируйтесь / Войдите, используя только номер телефона? Скрыть div, который является частью всех страниц на одной конкретной странице выбор продукта по пользовательскому атрибуту Как получить сообщение после публикации из редактора wordpress прежде, чем его можно будет сохранить (опубликовать)? Многоязычный WordPress работает на локальном хосте, но не на реальном сайте? Pagination перезагружает первую страницу, но имеет правильный URL-адрес Мои результаты ввода не всегда в алфавитном порядке Как отправить электронную почту в WordPress с несколькими приложениями Используйте отдельную настраиваемую таблицу (не сообщения) для обработки данных загрузки файлов Замените тег «Заголовок» на пользовательское поле Сортировка результатов по имени и порядку на Archive.php Как удалить меню из шаблона темы WordPress Если инструкция для проверки post_content

Создайте WP_Query для поиска сообщений по их категориям или их родительским / дочерним категориям

Привет, мне очень жаль, если это было задано раньше, но я не смог найти точное решение, в котором я нуждаюсь. Итак, вот проблема, которую я хочу создать для поиска на моей странице WordPress. Всякий раз, когда пользователь отправляет форму, я хочу создать запрос для поиска сообщений по их категориям или их родителям / дочерним категориям. Вот пример:

пример

Поэтому в MYSQL это выглядело бы примерно так, но я не знаю, как это сделать в WordPress с помощью WP_Query, так как я новичок в этом.

SELECT * FROM posts WHERE posts.category LIKE '%John Doe%' OR posts.sub_category LIKE '%John Doe%' 

Я не понял, как связаны таблицы, поэтому, возможно, здесь нужно сделать несколько операций JOIN, но я надеюсь, что кто-то поймет, что я прошу.

Любая помощь будет оценена по достоинству. Заранее спасибо!

Solutions Collecting From Web of "Создайте WP_Query для поиска сообщений по их категориям или их родительским / дочерним категориям"

get_categories используйте get_categories чтобы получить все категории сообщений, которые будут использоваться в форме, а затем прокрутите их, чтобы отобразить многоэкранный ввод …

 function hierarchical_category_inputs ($cat, $indent) { $cats = get_categories('hide_empty=false&orderby=name&order=ASC&parent='.$cat); $indent++; if ($cats) { foreach ($cats as $cat) { echo "<input type='checkbox' name='cat-".$cat->term_id."'"; echo " style='margin-left: ".($indent*10)."px;'> ".$cat->name."<br>"; hierarchical_category_inputs($cat->term_id, $indent); } } } echo "<form method='post'>"; // 0 for all categories, -1 so first indent is 0 hierarchical_category_inputs(0,-1); echo "<input type='hidden' name='custom_catsearch' value='yes'>"; echo "<input type='submit' value='Search'>"; echo "</form>"; 

Затем в части поиска вы собрали массив отмеченных категорий, чтобы перейти к WP_Query :

 function custom_catsearch_output() { $cats = array(); foreach ($_POST as $key => $value) { // make sure the post key starts with cat- if (substr($key,0,4) == 'cat-') { // check for check of the checkbox if ($value == '1') { // get the cat id from after cat- $cats[] = substr($key,4,strlen($key)); } } } $query = new WP_Query(array('cat' => $cats)); print_r($query); // ... do something different with the results ... } 

Использовать это:

 $query = new WP_Query( array( 'cat' => 4 ) ); 

Где 4 – идентификатор категории верхнего уровня (Блэкберн). Этот запрос будет содержать субаты.

Ссылка – WP_Query