Улучшаем страницу с результатами поиска в 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.
Теперь купить в интернете контактные линзы стало гораздо проще, доставка по Украине и Киеву.
Комментариев - 16 к статье “Улучшаем страницу с результатами поиска в wordpress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи
- 17 полезных приемов и хаков для WordPress
- Обновление WordPress подробно для начинающих
- Ссылка читать далее в wordpress – тег more
- Как добавить дополнительные кнопки в редактор WordPress
- Что нового в WordPress 3.1
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Рост доходов корпорации Google
- Наказаны за слухи
- Samsung Galaxy S III не получит беспроводную зарядку до сентября
- В июне Apple представит новые ноутбуки MacBook Pro
- Amazon займется созданием собственных онлайн-телешоу
- Новые банки в системе «Яндекс.Деньги»
- Chrome OS станет похожей на традиционные операционные системы

Оцените статью: 

Категории:
Теги:
Спасибо за инфу Tod! Буду пробовать настраивать.
Интересные решения, довольно полезные. Хотя сам поиск в wordpress не очень нравится, ищет странно и не всегда находит даже по прямому запросу + выдает ссылки на страницы, где такого слова просто нет.
Сергей, потому я и рекомендую использовать «пользовательский поиск Google», хотя он ищет по проиндексированным страницам, зато делает это весьма качественно.
У меня с индексацией в гугле не все гуд) Относительно, конечно. Да и посетители не думаю, что часто пользуются поиском. Я вот очень редко, ибо в блогах иду примерно так – страница входа + похожие записи + выход)
А у меня ширина на сайте 550 пикселей…а в гугле минимум нужно 700. И как это исправить?
Евгений, кто сказал, что в google нужно именно 700? Там можно «пошаманить» со стилями оформления и задать любую ширину, у меня в этом блоге ведь тоже не 700, а 550 где-то.
Ну странно…там вроде написано так.
Нужно поробовать!)
Здравствуйте! Подскажите пожалуйста, возможно ли из результатов поиска исключить отображение страниц….?
Дмитрий, не знаю, а зачем это нужно? Если человек не нашел нужные ответы на первой странице, то логично что захочет пройти дальше, а тут бац и нет страниц)
Дело в том, что в моем блоге результаты поиска выдают страницы, где представлена часть текста, на которой находится баннер гуглаАдсенс. Соответственно отображает часть скрипа гугла в ХТМЛ виде. Не красиво выглядит…
Ну и на этом спасибо! Кстати очень полезный пост!
Дмитрий, вообще код гуглАдсенс нужно добавлять в файл шаблона, а не саму запись блога. Тогда в тексте не будет лишнего HTML.
Спасибо за информацию! Очень полезные советы для начинающих :)
Добрый день!
Много искал по интернету решение вопроса обрезки сообщений, но только вы затронули эту тему. У меня шаблон smartone и при поиске либо при выборе категории все посты обрезаются, пропадают картинки и все такое. У меня сообщения обрезаются тегом more, мне и нужно чтобы все сообщения точно так же отображались и при поиске и при выводе категорий. Я в программировании не силен и ваши слова мне мало чем помогли:
«Как правило внешний вид страницы поиска задается в файле шаблона search.php. Открываем его и, после внимательного изучения, аккуратно добавляем туда код из файла архивов archive.php.»
Можно по конкретнее что, откуда и куда вставлять.
Заранее спасибо.
Дмитрий, структура файла search.php похожа на archive.php – в обоих выводится список сообщений, только для первого он зависит от результатов поиска. На сам формат отображения постов можно влиять, позаимствовав код из archive.php или index.php, то есть вывод заголовков, картинок и т.п.
Я вот тут покопался и нашел в файле functions.php и нашел там следующую запись:
function smartone_excerpt_length( $length ) {
return 40;
}
add_filter( ‘excerpt_length’, ‘smartone_excerpt_length’ );
function smartone_continue_reading_link() {
return ‘ ‘ . __( ‘Читать полностью →’, ‘smartone’ ) . ‘‘;
}
Как я понял именно они влияют на отображение сообщений в поиске и категориях. Как можно отредактировать код чтобы сообщения выдавались как на главной странице.
Дмитрий, этот код, насколько я понимаю, во-первых, указывал сколько символов будет выводится в кратком сообщение (40), а во вторых создает какую-то специальную кнопку «читать далее», может название статьи добавляет.