La fonction de recherche par défaut si le formulaire de recherche est vide renvoie la page d'accueil, je veux qu'elle renvoie une page "désolé votre recherche n'a renvoyé aucun résultat".
et ce ticket me dit qu'il est censé fonctionner de cette façon! Quelqu'un sait comment le changer en plus d'utiliser une redirection .htaccess?
J'utilise le fichier search.php suivant: `
<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 -->
"
Réponses:
Voici 3 façons de résoudre ce problème, je vous conseille d'utiliser la solution 2, mais faites attention à la jQuery dans la solution 1 comme un moyen d'éviter la situation en premier lieu.
Pour ceux qui veulent plus de code publié à partir du thème des demandeurs, ce n'est pas un problème de thème, c'est un problème général de WordPress qui affecte tous les sites WordPress.
Solution 1
Vous pouvez trouver un didacticiel détaillé sur la façon de résoudre ce problème ici:
http://wpengineer.com/2162/fix-empty-searches/
Solution 2 (recommandée)
Extrait d'un article de Spitzerg http://wordpress.org/support/topic/blank-search-sends-you-to-the-homepage
Solution 3
http://www.warpconduit.net/2011/08/02/fix-redirection-and-error-page-on-empty-wordpress-search/
Similaire à la solution 2 mais pas aussi vaste et légèrement différent.
la source
Créez un Page Search.php et collez ce code et changez votre boucle avec "get_template_part ('loop', 'search');
la source
En s'appuyant sur la solution 2 de Tom mais en vous assurant qu'aucun message n'est renvoyé, ajoutez un filtre de demande comme précédemment:
Mais cette fois, définissez une variable globale pour dire qu'aucun résultat de recherche ne doit être renvoyé. Ensuite, en utilisant un hook posts_where, assurez-vous qu'aucun message n'est renvoyé:
la source
Vérifiez si la requête de recherche est vide ( get_search_query () ), remplacez simplement le premier IF par celui-ci:
la source
Je le gère dans mes thèmes comme suit. Essayez d'utiliser ce code:
Nous gérons la condition if (! Have_posts ()). Mettez-le juste après votre titre h3.archive, avant si (have_posts) commence. Vous pouvez même appeler la fonction de formulaire de recherche dans la zone de contenu.
la source
J'ai également fait face au même problème, c'est par défaut donné par wordpress.
mais heureusement, j'ai trouvé quelque chose qui m'a aidé.
Ajouter ci-dessous dans "Functions.php"
puis remplacez sous la ligne (ligne n ° 15) dans search.php
Peut-être que cela vous aidera aussi
Pour plus de détails, lisez ceci: Personnaliser la recherche vide wordpress
la source
Une façon d'éviter la recherche vide consiste à effectuer une vérification javascript pour la valeur vide du champ de recherche et si le champ trouvé est vide, alors arrêtez de soumettre le formulaire de recherche comme ci-dessous:
la source
la source