Отображение количества результатов поиска
До сих пор я использовал следующий код для получения количества результатов при поиске и отображения этого числа.
<?php /* Подсчет результатов поиска */ $allsearch =& new WP_Query("s=$s&showposts=-1"); $count = $allsearch->post_count; echo $count . ' '; wp_reset_query(); ?>
Но этот код не кажется корректным. Он показывает следующую ошибку:
Устарело: Присваивание возвращаемого значения new по ссылке устарело
Может кто-нибудь подсказать правильный способ, как получить количество результатов поиска? Вышеуказанный код размещен в заголовке файла index.php темы внутри условного оператора для отображения различных заголовков в зависимости от типа страницы, на которой находится пользователь.

Если вы находитесь в шаблоне поиска, т.е. поисковый запрос является вашим основным запросом, то вы сможете получить результаты поиска из глобального объекта $wp_query
без выполнения дополнительного запроса.
global $wp_query;
echo $wp_query->found_posts.' результатов найдено.';
Правка 1
Если вам нужно получить количество результатов вне контекста поиска, вы можете объединить оба метода для получения эффективного результата. Это не загрузит все записи, но позволит получить количество результатов поиска.
$allsearch = new WP_Query("s=$s&showposts=0");
echo $allsearch ->found_posts.' результатов найдено.';
Ваша ошибка
Ошибка, которую вы получаете, находится здесь
$allsearch =& new WP_Query("s=$s&showposts=-1");
Удалите символ "&" рядом со знаком равенства, чтобы избавиться от ошибки. В итоге код должен выглядеть так:
$allsearch = new WP_Query("s=$s&showposts=-1");

Вау, спасибо. Я тоже попробовал это, и это сработало: '<?php / Количество результатов поиска / $count = $wp_query->post_count; echo $count . ' '; wp_reset_query(); ?>'

Хариш, твой $allsearch = new WP_Query("s=$s&showposts=0"); echo $allsearch ->found_posts.' results found.'; будет отображать только количество на текущей странице, а не общее. Например, он покажет только 10, даже если всего 20 записей.

Возможно, будет полезно также поделиться этим, чтобы первый заголовок уведомлял пользователя, что результаты поиска найдены, а второй - сколько именно результатов найдено. Если найдено меньше 2 результатов, должно отображаться "Найден 1 результат", иначе "Найдено x результатов".
<h2 class="blog_archive_heading">Результаты поиска по запросу '<?php the_search_query(); ?>'</h2>
<h3 class="blog_archive_heading"><?php
global $wp_query;
if($wp_query->found_posts < 2) {
$result = "результат";
} else {
$result = "результатов";
}
echo $wp_query->found_posts . " " . $result . " найдено.";
?></h3>
Этот фрагмент кода находится в моем файле search.php.
Файл section-searchresults.php просто выводит найденные записи блога, соответствующие вашему запросу. Если ничего не найдено, будет выведено "Результатов не найдено".
