¿Está buscando una forma de crear múltiples plantillas de búsqueda para tipos de publicación personalizados? Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puede usar para crear múltiples plantillas de búsqueda para tipos de publicación personalizados en WordPress.
Instrucciones:
Plantilla de búsqueda
Cree un nuevo archivo llamado search.php y agregue la siguiente plantilla de búsqueda. Cambie el $search_refer= CUSTOM_POST_TYPE por los nombres de sus tipos de publicación. También deberá cambiar la ruta de la plantilla a la plantilla correspondiente que desea mostrar los resultados.
<?
/* Template Name: Search Results */
$search_refer = $_GET["post_type"];
if ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_one-name.php'); }
elseif ($search_refer == 'CUSTOM_POST_TYPE') { load_template(TEMPLATEPATH . '/template_two-name.php'); };
?>
Mostrar resultados de búsqueda
Agregue esta query_post justo encima del bucle en las plantillas de búsqueda que cree. No olvide cambiar el CUSTOM_POST_TYPE para cada una de sus plantillas.
<?php
$args = array(
'post_type'=> 'CUSTOM_POST_TYPE',
's' => $s,
'paged' => $paged,
);
query_posts($args);
?>
Formulario de búsqueda
Agregue este HTML a la plantilla donde desea mostrar el formulario de búsqueda. Deberá cambiar el nombre CUSTOM_POST_TYPE al tipo de publicación que desea buscar. Deberá crear un nuevo formulario para cada tipo de publicación personalizado o usar un menú desplegable para establecer el post_type.
<form id="searchform" action="<?php bloginfo('home'); ?>/" method="get">
<input id="s" maxlength="150" name="s" size="20" type="text" value="" class="txt" />
<input name="post_type" type="hidden" value="CUSTOM_POST_TYPE" />
<input id="searchsubmit" class="btn" type="submit" value="Search" />
</form>
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: 43 mejores temas de fotografía para WordPress y cómo crear un formulario de contacto en WordPress.
Hola, gracias por este tutorial.
Estoy intentando crear un formulario de búsqueda personalizado para colocar en la barra lateral de la sección de blog de mi sitio web. Quiero que el formulario de búsqueda solo busque DENTRO de las ENTRADAS (entradas de blog estándar, no un tipo de entrada personalizado) – y que ignore cualquier otro contenido, por ejemplo, páginas. ¿Es posible adaptar este método a lo que estoy intentando hacer?
Lo he intentado pero sin éxito.
Muchas gracias
Hola Sally,
Intenta este tutorial sobre cómo filtrar tipos de publicaciones de los resultados de búsqueda. Espero que te resulte útil 🙂
Ronroneo ronroneo ronroneo perfecto )
Perfecto. ¡Gracias!
Disculpa la pregunta de novato, pero ¿hay alguna forma de ir un paso más allá y buscar solo en un meta_field personalizado dentro del tipo de publicación personalizado? He estado buscando durante días y este es el script más cercano que pude encontrar. Actualmente busca en los títulos y el contenido de la publicación, pero tengo una tonelada de campos personalizados para el CPT y solo quiero que el usuario busque un campo específico. ¿Alguna idea?
¿Es posible adaptar estas instrucciones para buscar una taxonomía personalizada en lugar de una publicación personalizada? Estoy intentando devolver una búsqueda separada para cada taxonomía personalizada y no lo estoy entendiendo del todo. ¡Gracias!