Cómo utilizar varios 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 puede crear formularios de búsqueda diferentes / múltiples por completo. De esta manera, cada formulario puede limitarse a buscar un tipo de publicación específico. Aunque esto no es muy difícil, requerirá que tenga un conocimiento básico de las plantillas de WordPress.

Primero, necesitará algunos formularios de búsqueda. Coloque el siguiente código donde quiera que estén en su 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 modificar 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');
    }
}
?>

Por lo tanto, asumiremos que tiene dos formularios de búsqueda, 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. Entonces, siga adelante y cree un archivo normal-search.php y books-search.php (simplemente reemplace “normal” y “books” con los valores que haya estado usando).

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 esto, pegue el código de bucle de su portapapeles que copió del archivo search.php. Juntos, este código buscará solo en las publicaciones normales de su blog. Ahora, en el archivo books-search.php, agregue este fragmento de código y vuelva a pegar el bucle inmediatamente después:


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

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

Deja un comentario