La función de búsqueda predeterminada si el formulario de búsqueda está vacío devuelve la página de inicio, quiero que devuelva una página de "lo siento, su búsqueda no devolvió resultados".
y este boleto me dice que se supone que funciona de esa manera! ¿Alguien descubre cómo cambiarlo además de usar un redireccionamiento .htaccess?
Estoy usando el siguiente archivo 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 -->
``
Respuestas:
Aquí hay 3 formas de solucionar esto, le aconsejo que use la solución 2, pero preste atención a jQuery en la solución 1 como una forma de evitar la situación en primer lugar.
Para aquellos que desean más código publicado desde el tema de preguntas, este no es un tema, es un problema general de WordPress que afecta a todos los sitios de WordPress.
Solución 1
Puede encontrar un tutorial en profundidad sobre cómo solucionar esto aquí:
http://wpengineer.com/2162/fix-empty-searches/
Solución 2 (recomendada)
Tomado de una publicación de Spitzerg http://wordpress.org/support/topic/blank-search-sends-you-to-the-homepage
Solución 3
http://www.warpconduit.net/2011/08/02/fix-redirection-and-error-page-on-empty-wordpress-search/
Similar a la solución 2 pero no tan extensa y ligeramente diferente.
fuente
Crea una página Search.php y pega este código y cambia tu ciclo con "get_template_part ('loop', 'search');
fuente
Basándose en la solución 2 de Tom, pero asegurándose de que no se devuelvan publicaciones, agregue un filtro de solicitud como antes:
Pero esta vez establezca una variable global para decir que no se deben devolver resultados de búsqueda. Luego, utilizando un gancho posts_where, asegúrese de que no se devuelvan publicaciones:
fuente
Compruebe si la consulta de búsqueda está vacía ( get_search_query () ), simplemente reemplace el primer IF por eso:
fuente
Lo manejo en mis temas de la siguiente manera. Intenta usar este código:
Estamos manejando la condición if (! Have_posts ()). Póngalo justo después de su título h3.archive, antes de que comience (have_posts). Incluso puede llamar a la función de formulario de búsqueda en el área de contenido.
fuente
También me enfrenté al mismo problema, es por defecto dado por WordPress.
pero por suerte encontré algo que me ayudó.
Agregue a continuación en "Functions.php"
y luego reemplace la línea de abajo (línea no 15) en search.php
Podría ser que también te ayudará
Para más detalles, lea esto: Personalice la búsqueda vacía de WordPress
fuente
Una forma de evitar la búsqueda vacía es realizar una comprobación de JavaScript para el valor vacío del campo de búsqueda y, si el campo se encuentra vacío, deje de enviar el formulario de búsqueda como se muestra a continuación:
fuente
fuente