Wenn das Suchformular leer ist, gibt die Standardsuchfunktion die Startseite zurück. Ich möchte, dass die Seite "Entschuldigung, Ihre Suche ergab keine Ergebnisse" angezeigt wird.
Dieser Beitrag beantwortet es nicht
und dieses ticket sagt mir, dass es so funktionieren soll! Weiß jemand, wie man es ändert, außer mit einer .htaccess-Umleitung?
Ich benutze die folgende search.php-Datei: `
<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 -->
`
Antworten:
Hier sind 3 Möglichkeiten, dies zu beheben. Ich rate Ihnen, Lösung 2 zu verwenden, aber achten Sie auf die jQuery in Lösung 1, um die Situation an erster Stelle zu vermeiden.
Für diejenigen, die mehr Code aus dem Thema "Fragesteller" haben möchten, ist dies kein Thema. Dies ist ein allgemeines WordPress-Problem, das alle WordPress-Sites betrifft.
Lösung 1
Hier finden Sie ein ausführliches Tutorial, wie Sie dieses Problem beheben können:
http://wpengineer.com/2162/fix-empty-searches/
Lösung 2 (empfohlen)
Entnommen aus einem Beitrag von Spitzerg http://wordpress.org/support/topic/blank-search-sends-you-to-the-homepage
Lösung 3
http://www.warpconduit.net/2011/08/02/fix-redirection-and-error-page-on-empty-wordpress-search/
Ähnlich wie Lösung 2, aber nicht so umfangreich und leicht unterschiedlich.
quelle
Erstellen Sie eine Page Search.php und fügen Sie diesen Code ein und ändern Sie Ihre Schleife mit "get_template_part ('loop', 'search');
quelle
Aufbauend auf Toms Lösung 2, aber um sicherzustellen, dass keine Posts zurückgegeben werden, fügen Sie wie zuvor einen Anforderungsfilter hinzu:
Setzen Sie diesmal eine globale Variable, um anzugeben, dass keine Suchergebnisse zurückgegeben werden sollen. Verwenden Sie dann einen posts_where-Hook, um sicherzustellen, dass keine Posts zurückgegeben werden:
quelle
Überprüfen Sie, ob die Suchabfrage leer ist ( get_search_query () ). Ersetzen Sie einfach die erste IF durch diese:
quelle
Ich gehe damit in meinen Themen wie folgt um. Versuchen Sie es mit diesem Code:
Wir behandeln die if (! Have_posts ()) Bedingung. Schreibe es gleich nach deinem h3.archive-Titel, bevor if (have_posts) startet. Sie können sogar die Suchformularfunktion im Inhaltsbereich aufrufen.
quelle
Ich hatte auch das gleiche Problem, es wird standardmäßig von WordPress gegeben.
aber zum glück habe ich etwas gefunden, das mir geholfen hat.
Füge unten in "Functions.php" hinzu
und dann in search.php unter zeile (zeile nr 15) ersetzen
Vielleicht hilft es Ihnen auch
Für Details lesen Sie bitte folgendes : Passen Sie leere Suchwörter an
quelle
Eine Möglichkeit, eine leere Suche zu vermeiden, besteht darin, Javascript auf leere Werte des Suchfelds zu überprüfen. Wenn das gefundene Feld leer ist, hören Sie auf, das folgende Suchformular zu senden:
quelle
quelle