X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Как ограничить поиск только по заголовками записей WordPress

Приклад
  • 2024-12-08
  • 4497 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Сегодня будет маленький урок, о том как ограничить поиск на своем блоге WordPress только по заглавиям записей. Возможно Ваш сайт организован так, что на нем нужная информация есть только в заголовках, а внутри самой записи совсем не то то надо, то Вам может пригодится такой фильтр.

Поиск по заглавиям

Такой фильтр я использовал на сайте энциклопедии, который построен на WordPress. Это маленькая энциклопедия по садоводству и ее автор попросил меня убрать поиск по всему тексту записи и оставить только по заглавиям.

Как и говорил, делается это с помощью фильтра. Для этого нужно в файл пользовательских функций functions.php добавить такой код:

add_filter('posts_search', 'iskat_tolko_po_zagolovkam', 500, 2);
 
function iskat_tolko_po_zagolovkam($poisk, &$wp_zapros) {
    global $wpdb;
    if (empty($poisk)) :
        return $poisk;
    endif;
    $q = $wp_zapros->query_vars;
    $n = !empty($q['exact']) ? '' : '%';
    $poisk = $poiskand = '';
    foreach ((array) $q['search_terms'] as $term) :
        $term = esc_sql(like_escape($term));
        $poisk .= "{$poiskand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        $poiskand = ' AND ';
    endforeach;
    if (!empty($poisk)) :
        $poisk = " AND ({$poisk}) ";
        if (!is_user_logged_in()) :
            $poisk .= " AND ($wpdb->posts.post_password = '') ";
        endif;
    endif;
    return $poisk;
}

Теперь стандартный поиск будет осуществляться только по заглавиям записей. Данный урок не будет популярным и востребован массово, но все же, кому-то пригодится. Если Вы использовали данный фильтр у себя на сайте, поделитесь в комментариях о своем сайте и почему на нем нужен такой способ ограничения поиска.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 6, в среднем: 5 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078