Cómo utilizar múltiples formularios de búsqueda en WordPress

Recientemente le mostramos cómo limitar los resultados de búsqueda para tipos de publicaciones específicos en WordPress. Ahora le mostraremos cómo crear formularios de búsqueda diferentes / múltiples juntos. De esta manera, cada formulario puede limitarse a buscar un tipo de publicación específico. Si bien esto no es muy difícil, requerirá un conocimiento básico de las plantillas de WordPress.

Primero, necesitará algunos formularios de búsqueda. Inserta el siguiente código donde quieras que estén en tu blog:


<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/">
<input type="text" value="" name="s" id="s" />
<input type="hidden" name="search-type" value="normal" />
<input name="submit" type="submit" value="Go" />
</form>

Para especificar qué tipo de búsqueda realizará este formulario, simplemente cambie el valor del campo oculto. En este momento está configurado como «normal», pero puede ser lo que desee. A continuación, necesitamos editar el archivo search.php. Ábralo y reemplace todo lo que contiene con este código (primero copie el código existente en su portapapeles, lo necesitará en un minuto):


<?php
if(isset($_GET['search-type'])) {
    $type = $_GET['search-type'];
    if($type == 'random') {
        load_template(TEMPLATEPATH . '/normal-search.php');
    } elseif($type == 'books') {
        load_template(TEMPLATEPATH . '/books-search.php');
    }
}
?>

Entonces asumiremos que tiene dos formas de investigación, normal y libros. Este código simplemente redirige la búsqueda al archivo php que maneja esa consulta específica. Ahora solo tenemos que crear esos archivos. Por lo tanto, siga adelante y cree un archivo normal-search.php y books-search.php (simplemente reemplace «normal» y «books» con los valores que utilizó).

Ahora, en normal-search.php copie y pegue el siguiente código:


$args = array( 'post_type' => 'post' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

Inmediatamente después de eso, pegue el código de bucle del portapapeles que copió del archivo search.php. Juntos, este código solo buscará publicaciones de blog regulares. Ahora, en el archivo books-search.php agregue este fragmento de código y pegue el bucle nuevamente justo después:


$args = array( 'post_type' => 'books' );
$args = array_merge( $args, $wp_query->query );
query_posts( $args );

Esto hará que WordPress solo busque el tipo de publicación personalizada de «libros». Puede repetir este proceso para todos los formularios de búsqueda que desee.

¿Te ha resultado útil??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicado. Required fields are marked *