Omnisearch rende facile ricercare qualunque cosa, sia localmente sul tuo sito, sia selezionando un motore di ricerca presente sul web!
Utilizzare Omnisearch
Utilizzare Omnisearch è estremamente semplice ed immediato. Dal Pannello di Amministrazione di WordPress puoi utilizzare la barra di ricerca presente in alto a destra, appena oltre il tuo Menù Utente, oppure cliccare su Jetpack » Omnisearch nella barra laterale, ed iniziare da li’. Il campo Cerca, situato nella Barra di Amministrazione di WordPress, utilizzerà Omnisearch soltanto per ricerche back end nell’amministrazione del tuo sito. Il classico campo front end di ricerca per gli utenti del tuo sito continuerà invece ad utilizzare la ricerca nativa di WordPress.
Aggiungere una sezione per i Risultati
Aggiungere ad Omnisearch una nuova sezione, dove visualizzare i risultati della ricerca, è incredibilmente facile. L’esempio di configurazione più semplice è mostrato di seguito:
add_filter( 'omnisearch_results', 'my_omnisearch_results', 10, 2 ); function my_omnisearch_results( $results, $search_term ) { $html = '<h2>I Miei Risultati Omnisearch</h2>'; $html .= '<p>Hai appena cercato <em>' . esc_html( $search_term ) . '</em>!</p>'; $results['My Results'] = $html; return $results; }
Alcune cose da tenere in considerazione:
- Due parametri sono passati al filtro. Il primo parametro è l’array in cui saranno inseriti i risultati della ricerca. Il secondo parametro è la stringa di ricerca. Non dimenticate di effettuare l’escape per gli input della ricerca!
- La chiave dell’array in cui sarà inserito il codice HTML (in questo caso,
'My Results'
) è anche utilizzata per generare, ad inizio pagina, il collegamento ‘Vai A’, seguito dall’identificativo dell’elemento che contiene i tuoi risultati. Per piacere scegli qualcosa di unico! - Con il tuo HTML puoi sbizzarrirti come più desideri. Abbiamo utilizzato
WP_List_Tables
di WordPress per generare il nostro contenuto perché ci piace come viene visualizzato, ma se preferisci presentare i tuoi risultati in una lista didiv
indipendenti, sentiti libero di farlo. - Se vuoi utilizzare lo stesso numero massimo di risultati visualizzati in ogni altra cosa, puoi utilizzare
apply_filters( 'omnisearch_num_results', 5 );
per ottenerlo. - Se vuoi sovrascrivere il numero massimo per i risultati che ogni modulo fornisce, riferisciti semplicemente con un hook al filtro
omnisearch_num_results
. - Se stai effettuando una ricerca che ti aspetti richieda un po’ di tempo, come nel caso in cui vai a colpire un’API esterna, potresti caricare i risultati tramite AJAX. Abbiamo già impostato le variabili globali
search_term
enum_results
in Javascript per te, puoi vedere un esempio di come caricare risultati via AJAX nella classeJetpack_Omnisearch_Plugins
a questo indirizzo.