È risaputo che la ricerca interna in WordPress lascia un po a desiderare restituendo risultati a volte non esattamente consoni alle aspettative dell’utente. Negli esempi a seguire cercheremo di migliorare (per quanto sia possibile) le funzionalità di ricerca nel nostro blog.
Un menu a discesa per filtrare in base alle categorie
Con questa funzione sarà possibile filtrare i nostri risultati per categorie specifiche mediante un semplice menu a tendina contenente tutte le nostre categorie. Per giungere a tale scopo dovrete sostituire all’interno del file searchform.php il modulo di ricerca con quello proposto nel codice sottostante:
[php]
[/php]
Ricerca nelle sottocategorie
Con questo script avrete la possibilità di effettuare ricerche nelle sottocategorie. Nell’esempio verranno ricercati tutti i risultati in base alla sottocategoria con ID 1, naturalmente anche qui modificate secondo le vostre esigenze:
[php]
[/php]
Evidenzia i termini di ricerca
Ottenuti i risultati dopo una ricerca sarebbe interessante evidenziare il termine che l’utente ha cercato magari sottolineandolo o evidenziandolo con un altro colore. Per ottenere questo risultato andremo a modificare i files functions.php e header.php come da esempio. Modifica di functions.php:
[php]function hls_set_query() {
$query = attribute_escape(get_search_query());
if(strlen($query) > 0){
echo ‘
‘;
}
}
function hls_init_jquery() {
wp_enqueue_script(‘jquery’);
}
add_action(‘init’, ‘hls_init_jquery’);
add_action(‘wp_print_scripts’, ‘hls_set_query’);[/php]
quindi andrai ad aggiungere il codice seguente prima del tag di chiusura in header.php
[code lang=”js”][/code]
Disabilita la funzione di ricerca
Se la ricerca interna al tuo sito non ti interessa per niente puoi disabilitarla inserendo in functions.php questo codice:
[php]function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( ‘parse_query’, ‘fb_filter_query’ );
add_filter( ‘get_search_form’, create_function( ‘$a’, “return null;” ) );[/php]
Visualizza il numero di risultati della tua ricerca
Per visualizzare il numero di risultati trovati in una determinata ricerca basterà una piccola modifica al file search.php: Cerca questa stringa (può differire leggermente da tema a tema) :
[sourcecode language=”plain”]
Search Results
[/sourcecode]
e sostituiscila con questa:
[php]
Search Result for
[/php]
Restate in ascolto…nei prossimi articoli vedremo altre tecniche utili e graficamente gradevoli per personalizzare la nostra casella di ricerca.
Alla prossima!!!