@dimsontm

Как правильно обработать пустой запрос поиска в wordpress?

имеется строка поиска в шапке сайта. Так же есть шаблон вывода результатов поиска.
Поиск работает нормально. шаблон вывода следующий
<?php if (have_posts()) : ?>
                <?php while (have_posts()) : the_post(); ?>

                 <a href="<?php the_permalink() ?>"</a>
                <?php endwhile; ?>
              
        <?php else : ?>
                <h2 class="h2">Ничего не найдено, попробуйте еще раз</h2>
             
        <?php endif; ?>


Поисковой запрос удовлетворяется, если что-то не нашлось по запросу,то срабатывает второе условие if.
Но если отправить пустуой запрос, то возвращает ссылку на главную страницу либо ссылку на страницу поиска, (шаблон вывода результатов поиска). То есть каким-то образом результат пустого запроса проходит через цикл, выводя при этом ссылку на пост (при этом этом это ссылка на главную страницу либо страницу поиска) <?php the_permalink() ?>
Может есть какой-то способ нормально это обыграть, чтобы при пустом запросе так же срабатывало второе условие if ,как и при условии что ничего не найдено
  • Вопрос задан
  • 1545 просмотров
Решения вопроса 1
@dimsontm Автор вопроса
Решил просто отключать кнопку отправки)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Попробуйте добавить в functions.php темы
add_filter('posts_search', function( $search, \WP_Query $q ) {
    if (!is_admin() && empty($search) && $q->is_search() && $q->is_main_query())
        $search .=" AND 0=1 ";

    return $search;
}, 10, 2);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы