Улучшаем страницу с результатами поиска в wordpress
Поиск на сайте – вещь определенно нужная, часто мы не уделяем ему должного внимания. Если у вас старый, массивный и большой проект, то найти нужную информацию там становится не такой простой задачей. Для специализированный сайтов на различных CMS поиск может быть не совсем тривиальной задачей, требующей дополнительной установки. К счастью, шалбонах wordpress данная сложность попросту ликвидирована – наверное 99% дизайнов имеют в своей структуре работающий поиск – вам остается лишь активировать тот или иной шаблон для блога.
Поиск в wordpress, конечно, на любителя. Изначально в вашем шаблоне может выводиться вариант с обрезанным видом анонса статьи. То есть, выводится заголовок, мета данные и с помощью функции the_excerpt отображается часть поста длинною вроде бы в 55 символов. Не всегда в дизайне это выглядит красиво и здорово, поэтому лично я стараюсь сделать страницу поиска похожей на архивные разделы. Кроме того, что внешний вид страницы поиска в таком случае очень даже привычный для посетителя сайта (хотя и не совсем стандартный в плане поиска), так в нашем случае сделать это не так сложно.
Как правило внешний вид страницы поиска задается в файле шаблона search.php. Открываем его и, после внимательного изучения, аккуратно добавляем туда код из файла архивов archive.php. Таким образом, настроив единственный раз внешний вид постов на главной, страницах тегов и категорий wordpress я достаточно легко внедряю его и для поиска.
На для красоты и функциональности можно добавить кое-кто интересное на страницу поиска. Для этого заходим в файл search.php, находим место после заголовка, но перед статьями и добавляем что-то вроде такого кода:
<div class="entry">Для вашего поискового запроса "<?php /* Search Count */ $allsearch = &new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('"</span>'); _e(' найдено '); echo $count . ' '; _e('статьи. '); wp_reset_query(); ?></div>
В результате чего на странице результатов поиска появится надпись – Для вашего поискового запроса «ключевое слово» найдено 29 статьи. Текст, понятное дело, можно изменять так, как вам будет угодно, код в свою очередь определяет какой запрос вы ввели в форме поиска и сколько результатов для него было получено.
В одном из блогов я нашел еще хак для страницы поиска wordpress. Он позволяет «подсвечивать» слова, которые вы искали в результатах поиска. Для этого в файле search.php находим строку с функцией the_title, которая по умолчанию будет заключена в код типа этого:
<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
Так вот ее нужно заменить на
<?php echo $title; ?>
Но перед этим вставить следующую строку:
<?php $title = get_the_title(); $keys= explode(" ",$s); $title = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-excerpt">\0</strong>', $title); ?>
Этот код будет выделять «поисковые слова» в заголовке постов жирным шрифтом. Если выделение жирным вы практикуете по умолчанию, то в любом случае можно изменить стили в CSS.
Пример работы когда на сайте я так и не увидел, но судя по нему, выделение применяется только к заголовку. В принципе, то же самое можно сделать и с текстом анонса. Более того, существуют специальные плагины для этих целей. В данном случае использование wordpress плагина позволит получать подсветку поисковых слов даже после смены шаблона, куда не придется в очередной раз вносить правки.
В любом случае все эти правки вы можете и не использовать – все зависит от личных пожеланий и предпочтений. Хотя я бы также рекомендовал обратить внимание на пользовательский поиск Google или (Google Custom Search), который не только позволит реализовать какие-то дополнительные возможности поиска, но позволит получить максимально стандартный его вид и даже немного на этом заработать через Google Adsense. Собственно на WordPress inside вы можете видеть пример его реализации – меня лично все более чем устраивает. К тому же это позволило объединить поиск по данному блогу и Tod’s Blog, а я в свою очередь размещаю не совместить ли мне информацию со всех блогов, тематика то у них почти одинаковая – интернет.
P.S. Постовой. Киевское лето! Только оптимальный выбор отели Киева цены! Приезжай в гостиницу «Украина».
The world’s largest bittorrent system fot free torrent downloads music, movies, games and other files.
Теперь купить в интернете контактные линзы стало гораздо проще, доставка по Украине и Киеву.
Комментариев - 11 к статье “Улучшаем страницу с результатами поиска в wordpress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагин Lightbox Plus – улучшенный эффект для изображений
- Скрываем custom fields для не админов, функция remove_meta_box()
- Видеокурс WordPress Security по защите блога на WordPress
- Плагины смайликов в wordpress блоге
- Обновление WordPress подробно для начинающих
- Лишние ссылки с WordPress прочь
- Вставка PHP кода в WordPress через виджеты
- Безопасность (3)
- Видео (5)
- Возможности (53)
- Начинающим (16)
- Новости (19)
- Оптимизация (12)
- Плагины (61)
- Сервисы (10)
- Хаки и секреты (39)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи






(6,19 из 7, голосов - 21) - 17 полезных приемов и хаков для WordPress






(5,60 из 7, голосов - 10) - Что нового в WordPress 3.1






(5,38 из 7, голосов - 8) - Как добавить дополнительные кнопки в редактор WordPress






(5,25 из 7, голосов - 8) - Ссылка читать далее в wordpress – тег more






(5,00 из 7, голосов - 8) - Интернет магазин на wordpress – плагин UWCart






(4,63 из 7, голосов - 8) - Вывод категорий для поста через функцию get_the_category






(4,50 из 7, голосов - 8)
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Хакеры из Франции отомстили за закрытие Megaupload
- Facebook зарабатывает порядка 1 миллиарда долларов
- Mobile Mouse для работы с Mac компьютером
- Сотрудникам Apple пообещали существенные скидки на продукцию компании
- Митинг против принятия закона SOPA
- Конкурс фильмов открывает YouTube
- В Android Market появился «вышибала»

Оцените статью:
Категории:
Теги:
Спасибо за инфу Tod! Буду пробовать настраивать.
Интересные решения, довольно полезные. Хотя сам поиск в wordpress не очень нравится, ищет странно и не всегда находит даже по прямому запросу + выдает ссылки на страницы, где такого слова просто нет.
Сергей, потому я и рекомендую использовать «пользовательский поиск Google», хотя он ищет по проиндексированным страницам, зато делает это весьма качественно.
У меня с индексацией в гугле не все гуд) Относительно, конечно. Да и посетители не думаю, что часто пользуются поиском. Я вот очень редко, ибо в блогах иду примерно так – страница входа + похожие записи + выход)
А у меня ширина на сайте 550 пикселей…а в гугле минимум нужно 700. И как это исправить?
Евгений, кто сказал, что в google нужно именно 700? Там можно «пошаманить» со стилями оформления и задать любую ширину, у меня в этом блоге ведь тоже не 700, а 550 где-то.
Ну странно…там вроде написано так.
Нужно поробовать!)
Здравствуйте! Подскажите пожалуйста, возможно ли из результатов поиска исключить отображение страниц….?
Дмитрий, не знаю, а зачем это нужно? Если человек не нашел нужные ответы на первой странице, то логично что захочет пройти дальше, а тут бац и нет страниц)
Дело в том, что в моем блоге результаты поиска выдают страницы, где представлена часть текста, на которой находится баннер гуглаАдсенс. Соответственно отображает часть скрипа гугла в ХТМЛ виде. Не красиво выглядит…
Ну и на этом спасибо! Кстати очень полезный пост!
Дмитрий, вообще код гуглАдсенс нужно добавлять в файл шаблона, а не саму запись блога. Тогда в тексте не будет лишнего HTML.