Intereting Posts
Контактная форма Ajax Как исправить ошибки смешанного содержимого в инструменте настройки темы, когда ваш администратор использует SSL? Использование WordPress.com API для извлечения признанных изображений Что-то скрывает все html-объекты перед выходом в браузер Тезис 2 пользовательской страницы Как получить исходный комментарий при обработке ответа как я могу добавить дополнительный параметр для редактирования ссылки? Создание 20 000 сообщений или страниц с использованием CSV-файла? Добавление медиа и прикрепление изображений к страницам Использование PHP для переключения таблицы стилей и заголовков, установленных в файле cookie index2.php в корне, вызывающий ошибку 404 Сеанс работает на локальном сервере, но не на веб-сервере Как загрузить изображения WordPress на удаленный веб-сервер и отобразить эти изображения в галерее WordPress Показать фрагменты подписчиков Twitter не работают Допустимый размер памяти

Как искать внутри определенных таксономий в WordPress

Я пытаюсь искать сообщения в конкретных таксономиях, но при каждом поиске я получаю результаты от всех других страниц вместо поиска WordPress в выбранной категории в таксономии.

Я назвал свою таксономию: «publication_categories». Он содержит все категории для настраиваемого типа сообщений, который я назвал «публикацией». Это код, который у меня есть для моего custom-search.php:

<form method="get" id="searchform" action="<?php bloginfo('url'); ?>/"> <div class="alignleft"> <select name="taxonomy"> <option value="0">Select...</option> <?php $theterms = get_terms('publication_categories', 'orderby=name'); foreach ($theterms AS $term) : echo "<option value='".$term->slug."'".($_POST['publication_categories'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n"; endforeach; ?> </select> </div> <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" /> <input type="submit" id="searchbutton" value="Search" class="btn" /> </form> 

Я вижу несколько проблем с вашим кодом.

  1. вам не хватает поля post_type в вашей форме.
  2. имя выпадающего списка таксономии должно быть названием вашей пользовательской таксономии.
  3. метод формы установлен в GET, но вы проверяете выбранный с помощью POST.

поэтому ваша форма должна выглядеть примерно так:

 <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/"> <div class="alignleft"> <select name="publication_categories"> <option value="0">Select...</option> <?php $theterms = get_terms('publication_categories', 'orderby=name'); foreach ($theterms AS $term) : echo "<option value='".$term->slug."'".($_GET['publication_categories'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n"; endforeach; ?> </select> </div> <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" /> <input type="hidden" name="post_type" value="publication" /> <input type="submit" id="searchbutton" value="Search" class="btn" /> </form> , <form method="get" id="searchform" action="<?php bloginfo('url'); ?>/"> <div class="alignleft"> <select name="publication_categories"> <option value="0">Select...</option> <?php $theterms = get_terms('publication_categories', 'orderby=name'); foreach ($theterms AS $term) : echo "<option value='".$term->slug."'".($_GET['publication_categories'] == $term->slug ? ' selected="selected"' : '').">".$term->name."</option>\n"; endforeach; ?> </select> </div> <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" /> <input type="hidden" name="post_type" value="publication" /> <input type="submit" id="searchbutton" value="Search" class="btn" /> </form> 

Возможно, это добавлено в вашу форму?

 <input type="hidden" name="post_type" value="publication" />