SdelaemBlog

Создание Сайтов и их настройка

Поиск wordpress по заголовку статьи.

Главная Статьи WordPress Поиск wordpress по заголовку статьи.
#WordPress #Оптимизация

21 февраля 2013

Приветствую, всех зашедших на блог — /. Вебмастера, которые используют wordpress, для управления своими сайтами, могли сталкиваться с одной проблемой данной CMS. Проблема возникает, при попытке найти ту или иную статью на сайте, с помощью стандартного поиска по сайту wordpress. В результаты поиска довольно часто, да что там, почти всегда попадают статьи, которые могут не относиться к тому, что хотел бы найти посетитель на сайте. Связано это с тем, что стандартный поиск wordpress, выводит все результаты, где встречается искомое слово. В этом естественно есть большой минус, заключается он в том, что в результаты поиска попадают статьи, в которых может быть упомянуто искомое слово, но статья может абсолютно не иметь никакого отношения, к необходимой информации. Поэтому данную проблему необходимо решить.

Поиск wordpress по заголовку или title статьи

Вообще на эту статью, меня подтолкнул вопрос заданный мне в комментариях блога. Так как я стандартный поиск не использую на своем блоге, поэтому и не обращал внимание на этот изъян. Я использую поиск по сайту от Яндекс. Ну да ладно, вернемся к нашей теме.

Как же нам сделать поиск wordpress более правильным, чтобы он отдавал результаты, которые действительно хотел бы увидеть пользователь? На самом деле все очень просто. При правильном написании текстов мы всегда стараемся сделать акцент на заголовке статьи, так как именно он попадет в выдачу поисковых систем, и именно от него во многом зависит перейдет пользователь всемирной паутины на сайт или нет. То есть, исходя из этого, становится ясно, что поиск wordpress станет более релевантным, если будет искать именно по title наших постов. Осталось только осуществить задуманное.

Поиск wordpress только по заголовку (title) статьи. Первый способ.

Первый способ довольно простой. Для того, чтобы поправить поиск wordpress нам необходимо открыть файл query.php, который находится в папке wp-includes, с помощью текстового редактора, например NotePad++ и найти вот такую строку:

$search .= "{$searchand}(($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}'))";

И заменить на:

$search .= "{$searchand}((post_title LIKE '{$n}{$term}{$n}'))";

После этого, сохранить файл и залить его обратно на хостинг, использую например бесплатный ftp-клиент FilleZilla.

Теперь наш поиск работает так, как нам нужно и ищет только по заголовкам не используя, при этом контент. Но в данном способе тоже есть небольшой подвох. После обновления движка wordpress, эту операцию придется проделать снова, так как редактируемый файл вернется в свое исходное состояние. В принципе в этом нет ничего такого страшного, так как правка занимает буквально две минуты не более. Но все же, как нам избавиться от этой зависимости, от движка?

Поиск wordpress только по заголовку (title) статьи. Второй способ.

Этот способ также не должен вызвать никаких проблем. Но он будет более приемлем, для большинства, так как после обновления движка, все так и останется, так как в данном случае мы добавим функцию в сам шаблон.

Итак, чтобы поиск wordpress начал искать по заголовку (title) статьи, нужно открыть в текстовом редакторе файл functions.php, который находится в wp-content/themes/Наша_тема и добавить в него следующую функцию:

function __search_by_title_only( $search, &$wp_query )
{
 global $wpdb;
 if ( empty( $search ) )
 return $search; // skip processing - no search term in query
 $q = $wp_query->query_vars;
 $n = ! empty( $q['exact'] ) ? '' : '%';
 $search =
 $searchand = '';
 foreach ( (array) $q['search_terms'] as $term ) {
 $term = esc_sql( like_escape( $term ) );
 $search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
 $searchand = ' AND ';
 }
 if ( ! empty( $search ) ) {
 $search = " AND ({$search}) ";
 if ( ! is_user_logged_in() )
 $search .= " AND ($wpdb->posts.post_password = '') ";
 }
 return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

После чего сохранить файл, и радоваться тому, что у нас все получилось ;-)

Важно! Данную функцию необходимо добавить до закрывающего тега ?> который находится в самом низу файла.

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

Но для любителей коллекционировать плагины пачками даю наводку. Вот эти плагины должны вам помочь, но без гарантий, так как я не проверял их:

  1. Search Everything
  2. Search Unleashed (продвинутый плагин, для различных извращенных вариантов поиска).

На этом у меня все. Как видите, более правильный поиск wordpress сделать довольно просто. И любой посетитель вашего сайта сможет найти нужную информацию, используя поиск по заголовку (title) статьи. Не забывайте делать backup, перед редактированием файлов. И конечно же, обязательно подписывайтесь, вдруг я напишу еще, что-нибудь интересное :-P

Удачи, Друзья!

Оставьте свой коммент

Комментарии

  1. Юрий

    Ну ограничить поиск только по заголовкам, тоже не лучшее решение. Вопервых не каждый автор умеет четко подобрать заголовок для своей статьи или куда чаще встречается, когда заголовок имеет двусмысленное значение. А вовторых, статья может затрагивать полезную информацию, которая не связана напрямую с заголовком.
    Я встречал много плагинов, которые позволяют осуществлять поиск как по тексту, так и по заголовкам. Думаю, если «свой» поиск принципеально важен, то стоит найти подходящий плагин. Но я бы, как и Вы воспользовался поиском от Яндекс или Гугл. Опять же, если поиск действительно важен на вашем сайте.

    4 года назад21.02.2013 Ответить
  2. Михаил Веб

    @ Юрий: Спасибо за ваше мнение. Но этот вопрос на самом деле слишком спорный, чтобы даже начинать дискуссию. Но все же…
    Во-первых статья написана с учетом того, что заголовки говорят, о чем данная статья.
    Второе, если честно не понял, если в тексте есть какая-то важная информация не относящаяся к заголовку, то о чем может быть эта статья, если только обо всем сразу, но какой тогда от нее толк, если даже в итоге поисковые системы навряд ли поймут на чем вы хотели сделать акцент, и куда определять эту стать в выдаче.
    Вот, например, я когда писал статью. Я проверял на локалке: Вбивал запрос «настроить», но результаты по тексту это полный бред(имхо), так как wordpress выдавал все вперемешку и получалось, что если пользователь хочет, что-то настроить, результаты поиска хотят ему рассказать о похожих новостях (это правда), при этом результатов было очень много. И в связи с этим пользователю придется самостоятельно ДОискать нужную информацию и выбрать из общей кучи.
    А с применением данного метода, пользователь находит именно статьи о «настроить», а не о чем-то другом, где встречается эта фраза или слово. И хочу заметить (возвращаясь к двусмысленности), что я не напишу заголовок «установить», если речь пойдет о настроить. Вот что имел ввиду я.
    Но у каждого свое мнение в любом вопросе и это правильно. И плагинов парочку я написал в статье.
    По крайней мере Мы сошлись на поиске от Яши или Google :-)

    4 года назад21.02.2013 Ответить
  3. Юрий

    @ Михаил Веб:
    Смотрите: Что касается важной информации, есть ресурс обзоров цифровой техники. Заголовок, так и звучит «обзор такого-то устройства», но в статье может встретиться, помимо обзора, описание сравнения данной модели устройства с каким либо другим устройством. Понимаете о чем я? Ваш поиск не выдаст эту статью при запросе о сравнении, даже если текст в статье будет в точности удавлетворять искомую фразу.

    4 года назад21.02.2013 Ответить
  4. Михаил Веб

    @ Юрий: Согласен, не выдаст. Но это только, при условии, если пользователь ищет именно тот товар, с которым идет сравнение, то есть который не указан в заголовке статьи.
    Но если пользователь ищет тот или иной товар, он необязательно подразумевает, тем более если статья относится к обзору, что он хочет сравнить его с другим, чаще ведь ищут именно обзор, то есть описание самого товара. А насчет сравнивания, если честно он не совсем подходит, для использования поиска, скорее для сравнения должен быть отдельный функционал. Но опять же это мое мнение, а у вас оно другое. Но я понял о чем Вы в принципе и соглашусь, что такой поиск подойдет не всем, это ведь всего лишь один (из множества возможных) вариант.

    4 года назад21.02.2013 Ответить
  5. Капля Смысла

    Здравствуйте, Михаил!
    Прежде всего с праздником!
    В связи с вопросом поиска на блоге, не возникало ли у Вас идеи написать о том, как оформить страничку 404? Не найдено ничего по запросу на блоге и читателю выдаётся это ужасное 404. Как сделать так, чтобы читателю вместо 404 рекомендовалось просмотреть ту или иную рубрику или, по крайней мере, выдавалось 3 статьи похожей тематики? Буду очень признательна, если просветите как можно подробнее и самым простым языком…

    4 года назад23.02.2013 Ответить
  6. Михаил Веб

    @ Капля Смысла: Спасибо за поздравления. Была идея и более того есть, постараюсь написать в ближайшем будущем. По поводу похожих статей навряд ли, но пару самых популярных или последних постов вывести можно. Если срочно, пишите через форму обратной связи, постараюсь помочь.

    4 года назад23.02.2013 Ответить
  7. Капля Смысла

    Не срочно, видела такую страничку на одном интересном блоге, обзавидовалась… ( И полезно ведь для блога и читателей. Отыщу ссылку на тот блог — отпишусь в гугл+.

    4 года назад23.02.2013 Ответить
  8. Капля Смысла

    Вот на этом блоге у Ирины Селищевой Ссылка удалена
    Раньше был какой-то текст утешительный и картинка. Сейчас вижу просто поисковик поставили, но и то не так ужасно как НИЧЕГО НЕ НАЙДЕНО.

    4 года назад23.02.2013 Ответить
  9. Михаил Веб

    @ Капля Смысла: Понятно. Я это и имел ввиду, только можно добавить еще популярные статьи или последние.

    4 года назад23.02.2013 Ответить
  10. Вадим

    Здравствуйте! У меня к Вам вопрос, помогите пожалуйста! У меня на wordpress Twentyten стоит стандартный поисковик и меня это пока устраивает потому-что я только наполняю сайт и у меня там пока и не чего искать. Но вопрос вот в чем. Поисковик находит две статьи которые есть у меня на сайте, но одна статья написана на странице с сайбарам, а другая статья написана на странице без сайдбара и когда я нажимаю поиск, то эти две статьи выводятся на одной странице, которая с сайдбаром и все накладывается друг на друга. Как можно изменить страницу на которую выводит поисковик, чтобы она была без сайдбара? Или как сделать чтобы при нажатии на поиск все что он нашел выводилось на новую страницу? Заранее спасибо!

    4 года назад24.03.2013 Ответить

Чтобы оставить комментарий, заполните, пожалуйста форму ниже:

Смайлы

Обязательно для Заполнения!

Обязательно для Заполнения!

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

Отправить жалобу разработчику сайта

Если у Вас возникли проблемы, не стесняйтесь отправлять жалобу, она обязательно будет учтена и все будет исправлено.

[contact-form-7 404 "Not Found"]

Спасибо большое за поддержку проекта! :)

Для поддержки проекта, выберите убодный способ для оплаты: