
Recientemente le mostramos cómo restringir los resultados de búsqueda para tipos de publicaciones específicas 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á una comprensión básica de las plantillas de WordPress.
Primero, necesitará algunos formularios de búsqueda. Inserta el siguiente código donde quieras que esté 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 en “normal”, pero puede ser lo que quieras. 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 al 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'); } } ?>
Asumiremos que tiene dos módulos de búsqueda, normal y libros. Este código simplemente está redirigiendo la búsqueda al archivo php que maneja esa consulta específica. Ahora solo tenemos que crear esos archivos. Entonces, continúe y cree un archivo normal-search.php y books-search.php (simplemente reemplace “normal” y “books” con los valores que usó).
Ahora, en normal-search.php copia y pega el siguiente código:
$args = array( 'post_type' => 'post' ); $args = array_merge( $args, $wp_query->query ); query_posts( $args );
Inmediatamente después, 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 tantos formularios de búsqueda como desee.
