Forma simple de buscar solo tipos de contenido personalizados

28 sept 2011, 20:03:30
Vistas: 36.3K
Votos: 6

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

2
Comentarios

para múltiples tipos de publicaciones: <input type="hidden" name="post_type[]" value="stories"/> <input type="hidden" name="post_type[]" value="products"/> https://wordpress.stackexchange.com/questions/12723/searching-multiple-custom-post-types-and-pages

Phil Sav Phil Sav
26 mar 2018 08:45:48

Para complementar lo de Hansy, revisa mi publicación aquí: https://wordpress.stackexchange.com/questions/26372/search-only-pages-if-on-page/29060#29060 para usar casillas de verificación de radio y dar a los usuarios la opción de qué desean buscar.

Brian Fegter Brian Fegter
28 sept 2011 21:07:01
Todas las respuestas a la pregunta 3
1
13

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.

28 sept 2011 20:29:11
Comentarios

¿Cómo funcionaría esto para múltiples tipos de entradas (post_types)?

kneidels kneidels
29 feb 2016 13:37:31
0

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' );
18 nov 2024 09:07:10
0

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.

17 feb 2019 18:58:08