Функция поиска по умолчанию, если форма поиска пуста, возвращает домашнюю страницу, я хочу, чтобы она возвращала страницу «извините, ваш поиск не дал результатов».
и этот билет говорит мне, что он должен функционировать таким образом! Кто-нибудь выяснит, как изменить его, кроме использования перенаправления .htaccess?
Я использую следующий файл search.php: `
<div id="content" class="clearfix">
<div id="main" class="col700 left clearfix" role="main">
<h1 class="archive_title"><span>Search Results for:</span> <?php echo esc_attr(get_search_query()); ?></h1>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class('clearfix'); ?>>
<header>
<h3><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
<p class="meta"><?php _e("Posted", "bonestheme"); ?> <time datetime="<?php echo the_time('Y-m-j'); ?>" pubdate><?php the_time('F jS, Y'); ?></time> <?php _e("by", "bonestheme"); ?> <?php the_author_posts_link(); ?> <span class="amp">&</span> <?php _e("filed under", "bonestheme"); ?> <?php the_category(', '); ?>.</p>
</header> <!-- end article header -->
<section class="post_content">
<?php the_excerpt('<span class="read-more">Read more on "'.the_title('', '', false).'" »</span>'); ?>
</section> <!-- end article section -->
<footer>
</footer> <!-- end article footer -->
</article> <!-- end article -->
<?php endwhile; ?>
<?php if (function_exists('page_navi')) { // if expirimental feature is active ?>
<?php page_navi(); // use the page navi function ?>
<?php } else { // if it is disabled, display regular wp prev & next links ?>
<nav class="wp-prev-next">
<ul class="clearfix">
<li class="prev-link"><?php next_posts_link(_e('« Older Entries', "bonestheme")) ?></li>
<li class="next-link"><?php previous_posts_link(_e('Newer Entries »', "bonestheme")) ?></li>
</ul>
</nav>
<?php } ?>
<?php else : ?>
<!-- this area shows up if there are no results -->
<article id="post-not-found">
<header>
<h1>No Results Found</h1>
</header>
<section class="post_content">
<p>Sorry, but the requested resource was not found on this site.</p>
</section>
<footer>
</footer>
</article>
<?php endif; ?>
</div> <!-- end #main -->
<div id="sidebar1" class="sidebar right col220">
<?php get_search_form(); ?>
</div>
</div> <!-- end #content -->
`
Ответы:
Вот 3 способа исправить это, я советую вам использовать решение 2, но обратите внимание на jQuery в решении 1 как способ избежать ситуации в первую очередь.
Для тех, кто хочет получить больше кода из темы задаваемых вопросов, это не проблема темы, это общая проблема WordPress, которая затрагивает все сайты WordPress.
Решение 1
Вы можете найти подробное руководство о том, как это исправить, здесь:
http://wpengineer.com/2162/fix-empty-searches/
Решение 2 (рекомендуется)
Взято из сообщения от Spitzerg http://wordpress.org/support/topic/blank-search-sends-you-to-the-homepage
Решение 3
http://www.warpconduit.net/2011/08/02/fix-redirection-and-error-page-on-empty-wordpress-search/
Аналогично решению 2, но не так обширно и немного отличается.
источник
Создайте страницу Search.php, вставьте этот код и измените ваш цикл с помощью "get_template_part ('loop', 'search');
источник
Опираясь на решение Тома 2, но убедившись, что сообщения не возвращаются, добавьте фильтр запросов, как и раньше:
Но на этот раз установите глобальную переменную, чтобы сказать, что результаты поиска не должны возвращаться. Затем, используя хук posts_where, убедитесь, что сообщения не возвращаются:
источник
Проверьте, если поисковый запрос пуст ( get_search_query () ), просто замените первый IF следующим:
источник
Я обращаюсь с этим в моих темах следующим образом. Попробуйте использовать этот код:
Мы обрабатываем условие if (! Have_posts ()). Поместите его сразу после заголовка h3.archive, до того, как запустится if (have_posts). Вы даже можете вызвать функцию формы поиска в области содержимого.
источник
Я также столкнулся с той же проблемой, по умолчанию, заданной WordPress.
но, к счастью, я нашел то, что помогло мне.
Добавьте ниже в "Functions.php"
а затем заменить строку ниже (строка № 15) в search.php
Может быть, это вам тоже поможет
Подробности читайте здесь: Настройка пустого поиска WordPress
источник
Один из способов избежать пустого поиска - выполнить проверку javascript на наличие пустого значения поля поиска, и, если поле найдено пустым, прекратите отправку формы поиска, как показано ниже:
источник
источник