Улучшенная выдача результатов поиска
Для блога будет полезно иметь отдельную страницу для отображения результатов поиска. Обычно эта страница имеет название файла search.php.
Меняем стандартный заголовок
Ниже представлен код для улучшенной выдачи результатов, а именно в заголовке говорится какой поисковый запрос ввёл пользователь и сколько совпадений найдено по данному запросу. Для начала найдем место, где выводится заголовок, и заменим код заголовка этим:
Далее следует стандартный цикл вывода статей. После него необходимо установить действия на случай не нахождения соответствующих статей:
Разбор кода
Немного объясню самую главную строку, из за которой и открывался топик:
В случае не нахождения ни одной подходящей запросу статьи, на экран выводится сообщение:
И дальше просьба осуществить поиск заново. Как все догадались это только основная часть кода страницы, не хватает лишь самой структуры сайта, подключения шапки, сайдбара и подвала (если требуется) и т.д… Это уже делается индивидуально под каждый сайт.
Меняем стандартный заголовок
Ниже представлен код для улучшенной выдачи результатов, а именно в заголовке говорится какой поисковый запрос ввёл пользователь и сколько совпадений найдено по данному запросу. Для начала найдем место, где выводится заголовок, и заменим код заголовка этим:
<h3>Результаты поиска для
<?php
$allsearch = &new WP_Query("s=$s&showposts=-1");
$key = esc_html($s);
$count = $allsearch->post_count;
echo '<span style="color:#820101;">"'.$key.'"</span><br />Количество соответствий: ', $count;
wp_reset_query();
?>
</h3>
Далее следует стандартный цикл вывода статей. После него необходимо установить действия на случай не нахождения соответствующих статей:
<?php else : ?>
<h3>По запросу
<?php
$allsearch = &new WP_Query("s=$s&showposts=-1");
$key = esc_html($s);
$count = $allsearch->post_count;
echo '<span style="color:#820101;">"'.$key.'"</span><br />Количество соответствий: ', $count;
wp_reset_query();
?>
</h3>
<hr />
<h1>По запросу ничего не найдено</h2>
<p>Извините, но то что вы ищите находится не здесь. Проверьте правильность ввода в адресной строке, либо попытайтесь найти это с помощью формы поиска ниже</p>
<?php endif; ?>
Разбор кода
Немного объясню самую главную строку, из за которой и открывался топик:
- $allsearch — переменная которая хранит в себе поисковый запрос и запрос к базе на вывод всех найденных по запросу статей;
- $key — в неё заносится запрос, обработанный функцией esc_html(), т.е. все специальные символы преобразованы в HTML сущности;
- $count — количество найденных записей по запросу;
В случае не нахождения ни одной подходящей запросу статьи, на экран выводится сообщение:
По запросу "(здесь будет запрос)"
Количество совпадений: 0
И дальше просьба осуществить поиск заново. Как все догадались это только основная часть кода страницы, не хватает лишь самой структуры сайта, подключения шапки, сайдбара и подвала (если требуется) и т.д… Это уже делается индивидуально под каждый сайт.
5 комментариев
плагином будет работать, но меня пока интересует вариант БЕЗ плагина