Intereting Posts
Как перенаправить пользовательский архив типа сообщения на первый термин связанной таксономии? Штрих-коды, HTML-таблицы и несколько строк Может ли кто-нибудь объяснить функцию третьего параметра «add_rewrite_tag», Отсутствие сообщений в запросе disbale default widgets при активации темы Заголовки заголовков отображаются дважды Почему мой пользовательский мета-ящик не сохраняет Невозможно отобразить заголовки таблиц в ответном расположении таблицы Разрешить пользователю редактировать только определенные страницы Как управлять SSL в WordPress для автоматического изменения http на https? Использование короткого кода для отображения массива в массиве Шаблон Ajax: как обращаться с головной частью Шифрование / расшифровка заголовка и данных Сравните 3 пользовательских поля и отсортируйте их по старейшим Как писать «безопасные» плагины?

Вернуться все теги из результатов поиска

Мне интересно, можно ли вернуть список всех «тегов», связанных со всеми возвращаемыми сообщениями. Теоретически я бы использовал этот список терминов для создания соответствующих ссылок «фильтр по» для уточнения поиска.

Например: пользователь ищет «Foo», и есть 100 результатов. Можно ли получить коллекцию всех тегов сообщений? Таким образом, сообщение «Foo 1» может быть помечено «маленьким баром», а сообщение «Foo 2» может быть помечено «большой баром» и «foo foo» и т. Д. И т. Д.

Я хотел бы сделать это до того, как while_posts() выполнит свою while_posts() . В противном случае, я думаю, я мог бы использовать while_posts() для сбора всех тегов для каждого сообщения. Это наиболее очевидное решение для меня, за исключением того, что тогда список не там, где я хочу его в разметке. И, я не уверен, как включить теги на странице 2 (и дальше) результатов.

Solutions Collecting From Web of "Вернуться все теги из результатов поиска"

Глобальный объект $wp_query доступен до вызова have_posts() . Все, что вам нужно сделать, это запустить элемент posts этого объекта с помощью get_the_terms() .

Функция выборки:

 function get_query_terms( $taxonomy = 'post_tag' ) { $list = array (); foreach ( $GLOBALS['wp_query']->posts as $id ) { if ( $terms = get_the_terms( $id, $taxonomy ) ) { foreach ( $terms as $term ) $list[ $term->term_taxonomy_id ] = $term; } } ksort( $list ); return $list; } 

Помните, что любое использование query_posts() может разорвать этот список.