Forma simple de buscar solo tipos de contenido personalizados
Estoy tratando de encontrar una manera de limitar mi barra de búsqueda actual para que solo busque dentro de mi tipo de contenido personalizado 'events'.
No quiero que la búsqueda indexe ningún otro tipo de contenido, solo 'events'.
Aquí está la barra de búsqueda:
<form id="searchform" action="http://localhost:8888/ltc" method="get">
<input class="inlineSearch" type="text" name="s" value="Enter a keyword" onblur="if (this.value == '') {this.value = 'Enter a keyword';}" onfocus="if (this.value == 'Enter a keyword') {this.value = '';}" />
<input class="inlineSubmit" id="searchsubmit" type="submit" alt="Search" value="Search" />
</form>
Y el search.php:
<?php if ( have_posts() ) : ?>
<h1><?php printf( __( 'Resultados de búsqueda para: %s', 'twentyten' ), '' . get_search_query() . '' ); ?></h1>
<?php
/* Ejecuta el bucle para la búsqueda para mostrar los resultados.
* Si quieres sobrescribir esto en un tema hijo, incluye un archivo
* llamado loop-search.php y ese será utilizado en su lugar.
*/
get_template_part( 'loop', 'search' );
?>
(Todavía no he editado la página search.php predeterminada, ya que primero quiero configurar correctamente la indexación)
Gracias
Para buscar un tipo de publicación personalizada, puedes agregar a la consulta &post_type=events
, para lograr esto simplemente edita tu formulario así:
<form id="searchform" action="http://localhost:8888/ltc" method="get">
<input class="inlineSearch" type="text" name="s" value="Ingresa una palabra clave" onblur="if (this.value == '') {this.value = 'Ingresa una palabra clave';}" onfocus="if (this.value == 'Ingresa una palabra clave') {this.value = '';}" />
<input type="hidden" name="post_type" value="events" />
<input class="inlineSubmit" id="searchsubmit" type="submit" alt="Buscar" value="Buscar" />
</form>
Puedes hacer esto para cualquier tipo de publicación (debe ser uno existente o será descartado) y funcionará perfectamente.

En mi caso, la funcionalidad de búsqueda estaba funcionando perfectamente. Solo necesitaba filtrar la consulta para buscar únicamente el tipo de publicación de Cursos de Learndash. Esto es lo que hice:
// Filtra la consulta de búsqueda para incluir solo el tipo de publicación 'sfwd-courses'
function fn_search_courses_only($query) {
if( $query->is_search && ! is_admin() ) {
$query->set( 'post_type', 'sfwd-courses' );
}
}
add_action( 'pre_get_posts', 'fn_search_courses_only' );

Para buscar una entrada personalizada, solo tienes que poner el tipo de entrada en la sección de valor.
ej: Mi tipo de entrada personalizada es "blogpst". Ahora mira lo que hice realmente en el segundo campo de entrada
<input type="hidden" name="post_type" value="blogpst" />
Mira lo que he hecho. Simplemente puse el tipo de entrada en la sección de valor.
