Stai cercando un modo per creare modelli di ricerca multipli per tipi di post personalizzati? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per creare modelli di ricerca multipli per tipi di post personalizzati in WordPress.
Istruzioni:
Modello di ricerca
Crea un nuovo file chiamato search.php e aggiungi il seguente modello di ricerca. Cambia $search_refer= CUSTOM_POST_TYPE con i nomi dei tuoi tipi di post. Dovrai anche cambiare il percorso del modello con il modello corrispondente che desideri visualizzare i risultati.
<?
/* 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'); };
?>
Visualizza i risultati della ricerca
Aggiungi questo query_post appena sopra il loop nei modelli di ricerca che crei. Non dimenticare di cambiare CUSTOM_POST_TYPE per ciascuno dei tuoi modelli.
<?php
$args = array(
'post_type'=> 'CUSTOM_POST_TYPE',
's' => $s,
'paged' => $paged,
);
query_posts($args);
?>
Modulo di ricerca
Aggiungi questo HTML al modello che desideri visualizzare il modulo di ricerca. Dovrai cambiare il nome CUSTOM_POST_TYPE con il tipo di post che desideri cercare. Dovrai creare un nuovo modulo per ogni tipo di post personalizzato o utilizzare un menu a discesa per impostare 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: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: 43 migliori temi di fotografia per WordPress e come creare un modulo di contatto in WordPress.
Ciao, grazie per questo tutorial.
Sto cercando di creare un modulo di ricerca personalizzato da inserire nella barra laterale della sezione blog del mio sito web. Voglio che il modulo di ricerca cerchi solo all'interno di POST (post del blog standard, non un tipo di post personalizzato) – e ignori qualsiasi altro contenuto, ad es. pagine. È possibile adattare questo metodo a ciò che sto cercando di fare?
Ci ho provato ma senza successo.
Molte grazie
Ciao Sally,
Prova questo tutorial su come filtrare i tipi di post dai risultati di ricerca. Spero ti sia utile 🙂
Miao miao miao perfetto )
Perfetto. Grazie!
Scusa la domanda da principiante, ma c'è un modo per andare un passo avanti e cercare solo un meta_field personalizzato all'interno del tipo di post personalizzato? Ho cercato per giorni e questo è lo script più vicino che ho trovato. Al momento cerca i titoli e il contenuto del post, ma ho un sacco di campi personalizzati per il CPT e voglio solo che l'utente cerchi un campo specifico. Pensieri?
è possibile adattare queste istruzioni per cercare una tassonomia personalizzata invece di un post personalizzato? Sto cercando di ottenere una ricerca separata per ogni tassonomia personalizzata e non ci sto capendo molto. Grazie!