Intereting Posts
Последнее сообщение в цикле – пользовательские типы сообщений Редактировать ссылку на уменьшенное изображение и изменить HTML-код Виджеты WordPress кэшируются? Триггерный сектор связи с настраиваемым полем Запрос пользовательской таксономии на отдельной странице страницы перезаписывается функцией wp_list_categories: как сортировать по ID, когда идентификаторы не являются последовательными Получить URL-адрес текущего сообщения, но не номер страницы Миниатюры больше по размеру, чем исходное изображение Код не зацикливается на всех продуктах данной категории На каком крючке я должен вызывать register_nav_menu (s)? Добавление тега в wp_nav_menu Как просмотреть идентификаторы категории Word по умолчанию? Как перенаправление блоков на одну страницу сообщения, если совпадение соответствует? Предотвратить добавление add_shortcode из тега вызвать мой скрипт только после загрузки библиотеки UI?

Попытка найти способ запроса, как обычный поиск, будет делать. в пределах страницы search.php

У меня есть поиск костюма на сайте, который я делаю.

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

Я думал о пути, но у меня проблемы с этим.

  1. в search.php в цикле в have_posts() , я добавлю строку, которая проверяет категорию каждого сообщения и создаст массив с этими категориями … и просто +1 каждый раз, когда определенная категория повторяется …… проблема с этим, поскольку разбиение на страницы на месте, оно найдет только категории для текущей страницы, в то время как оставшиеся страницы остаются неучтенными.

Исправлено это наличие другой wp_query, которая просто использует термин s . без разбивки на страницы.

Проблема с этим – я не знаю, как запросить wp для определенного термина, как обычный поиск. я хотя и использовал query_posts но все еще не query_posts как это сделать.

Заранее спасибо.

Solutions Collecting From Web of "Попытка найти способ запроса, как обычный поиск, будет делать. в пределах страницы search.php"

Это то, что я сделал:

Я запускаю другой запрос без разбивки на страницы следующим образом:

 $newQuaryVars = '&posts_per_page=99999999999999&post_type=post'; $posts = query_posts($query_string .$newQuaryVars); $categoriesList = array(); $categoriesAmounts = array(); 

Тогда в то while have posts я сделал следующее:

 while ( have_posts() ) : the_post(); $postCategories = get_the_category(); if($postCategories){ foreach($postCategories as $categoryInfo) { $categoriesAmounts[$categoryInfo->term_id]['amount']++; $categoriesList[$categoryInfo->term_id] = array( 'name' => $categoryInfo->name, 'url' => get_category_link( $categoryInfo->term_id ), 'amount' => $categoriesAmounts[$categoryInfo->term_id]['amount'] ); } } endwhile; 

Теперь у меня в основном есть массив с именем / url категорий и количеством сообщений, которые соответствуют поисковому запросу в этой категории.

после этого я просто array_multisort его и отобразил.

Надеюсь, что кто-то поможет.

Легко получить количество сообщений в категории …

 $qry = new WP_Query(array('cat'=>2)); var_dump($qry->found_posts); 

… но у вас может быть очень много запросов. Возможно, что-то вроде этого поможет уменьшить это:

 $catid = 1; $qry = new WP_Query; $cat_count = array(); if (!isset($cat_count['cat-'.$catid])) { $qry->query(array('cat'=>$catid)); $cat_count['cat-'.$catid] = $qry->found_posts; } var_dump($cat_count) 

По крайней мере, он запускает запрос только в первый раз, когда вы сталкиваетесь с категорией.