Recientemente le mostramos cómo limitar los resultados de búsqueda para tipos de publicaciones específicas en WordPress. Ahora le mostraremos cómo crear completamente diferentes/múltiples formularios de búsqueda. De esta manera, cada formulario se puede restringir para buscar tipos de publicaciones específicas. Si bien no es difícil, requiere que tenga una comprensión básica de las plantillas de WordPress.

Primero, necesita algunos formularios de búsqueda. Pon los siguientes códigos donde quieras en tu blog:


<form method="get"  action="<?php bloginfo('home'); ?>/">
<input type="text" value="" name="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, debemos modificar el archivo search.php. Ábralo y reemplace todo lo que contiene con este código (primero copie el código existente en el portapapeles, lo necesitará más tarde):


<?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 formas de búsqueda, normal y libros. Este código simplemente redirige la búsqueda al archivo php que maneja esa consulta en particular. Ahora solo necesitamos crear estos archivos. Así que continúe y cree un archivo normal-search.php y books-search.php (simplemente reemplace “normal” y “books” con los valores que haya estado usando).

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


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

Pegue el código de bucle del portapapeles copiado del archivo search.php justo después de esto. Juntos, este código solo buscará en sus publicaciones de blog normales. Ahora agregue este código en el archivo books-search.php y pegue el bucle nuevamente 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 “Libros”. Puede repetir este proceso para tantos formularios de búsqueda como desee.

Los datos expuestos en este sitio web son de índole informativo, no necesariamente están actualizados. Esta información es una recopilación de información de internet.