Modo semplice per cercare solo i custom post type

28 set 2011, 20:03:30
Visualizzazioni: 36.3K
Voti: 6

Sto cercando un modo per limitare la mia barra di ricerca attuale in modo che cerchi solo all'interno del mio custom post-type 'events'.

Non voglio che la ricerca indicizzi nessun altro tipo di post, solo 'events'.

Ecco la barra di ricerca:

<form id="searchform" action="http://localhost:8888/ltc" method="get">
        <input class="inlineSearch" type="text" name="s" value="Inserisci una parola chiave" onblur="if (this.value == '') {this.value = 'Inserisci una parola chiave';}" onfocus="if (this.value == 'Inserisci una parola chiave') {this.value = '';}" />
        <input class="inlineSubmit" id="searchsubmit" type="submit" alt="Cerca" value="Cerca" />
    </form>

E il search.php:

<?php if ( have_posts() ) : ?>
            <h1><?php printf( __( 'Risultati della ricerca per: %s', 'twentyten' ), '' . get_search_query() . '' ); ?></h1>
            <?php
            /* Esegue il loop per la ricerca per mostrare i risultati.
             * Se vuoi sovrascriverlo in un tema child includi un file
             * chiamato loop-search.php e quello verrà utilizzato al suo posto.
             */
             get_template_part( 'loop', 'search' );
            ?>

(Non ho ancora modificato la pagina search.php predefinita, poiché voglio prima impostare correttamente l'indicizzazione)

Grazie

2
Commenti

per più tipi di post: <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

Per aggiungermi a Hansy, dai un'occhiata al mio post qui: https://wordpress.stackexchange.com/questions/26372/search-only-pages-if-on-page/29060#29060 per utilizzare checkbox radio che diano agli utenti la possibilità di scegliere cosa vogliono cercare.

Brian Fegter Brian Fegter
28 set 2011 21:07:01
Tutte le risposte alla domanda 3
1
13

Per cercare un custom post type, puoi aggiungere alla query &post_type=events. Per ottenere questo risultato, modifica semplicemente il tuo form in questo modo:

<form id="searchform" action="http://localhost:8888/ltc" method="get">
        <input class="inlineSearch" type="text" name="s" value="Inserisci una parola chiave" onblur="if (this.value == '') {this.value = 'Inserisci una parola chiave';}" onfocus="if (this.value == 'Inserisci una parola chiave') {this.value = '';}" />
        <input type="hidden" name="post_type" value="events" />
        <input class="inlineSubmit" id="searchsubmit" type="submit" alt="Cerca" value="Cerca" />
</form>

Puoi farlo per qualsiasi post type (deve essere esistente altrimenti verrà scartato) e funzionerà perfettamente.

28 set 2011 20:29:11
Commenti

Come funzionerebbe questo per più post_types?

kneidels kneidels
29 feb 2016 13:37:31
0

Nel mio caso, la funzionalità di ricerca funzionava perfettamente. Avevo solo bisogno di filtrare la query per cercare solo il tipo di post dei Corsi Learndash. Ecco cosa ho fatto:

// Filtra la query di ricerca per includere solo il post type '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

Per cercare un custom post, devi semplicemente inserire il tipo di post nella sezione del valore.
es: Il mio Custom post type è "blogpst". Ora guarda cosa ho fatto effettivamente nel secondo campo di input

<input type="hidden" name="post_type" value="blogpst" />

Vedi cosa ho fatto. Ho semplicemente inserito il tipo di post nella sezione del valore.

17 feb 2019 18:58:08