Menu

Come utilizzare il codice PHP per creare una pagina di ricerca avanzata in WordPress


Come utilizzare il codice PHP per creare una pagina di ricerca avanzata in WordPress

Cos’è la ricerca avanzata?

La ricerca avanzata all’interno di WordPress è uno strumento che consente agli utenti di effettuare query personalizzate, filtrando i post o le pagine da visualizzare in base ai parametri forniti nel modulo di ricerca. Ci sono diversi elementi aggiuntivi che possono essere aggiunti al modulo iniziale, tra cui tag, categorie, date, autori e persino parole chiave personalizzate.

Come implementare una pagina di ricerca avanzata in WordPress?

Per creare una pagina di ricerca avanzata con WordPress, inizia a creare un nuovo file chiamato cerca.php all’interno della cartella del tema usando un semplice editor di testo e aggiungendo il seguente codice PHP al file:


function advanced_search_query($query) {
if ( $query->is_search() ) {
$query->set('post_type', array( 'post', 'page' ));
$query->set('post_status', array( 'publish' ));
}
return $query;
}
add_action( 'pre_get_posts', 'advanced_search_query' );
?>

Questo codice aiuta a impostare la ricerca in modo da comprendere entrambi i post e le pagine. Successivamente, è possibile aggiungere altri filtri al codice, come segue:


$query->query_vars['tag'] = 'tagname';
$query->query_vars['category_name'] = 'categoria';
$query->query_vars['author'] = 'nome-autore';
$query->query_vars['date_query'] = array(
array(
'year' => 2018,
'month' => 7
),
array(
'year' => 2016,
'month' => 7,
'compare' => '<='
)
);
$query->query_vars['meta_query'] = array(
array(
'value' => '15.00',
'field' => 'prezzo',
'compare' => '>'
)
);

È inoltre possibile utilizzare query_posts() o get_posts() se si desidera richiamare i risultati in una pagina o in un post.

Come modificare il modulo di ricerca?

Un ultimo passaggio necessario è aprire la pagina cerca.php ed aggiungere il codice HTML necessario per creare un modulo di ricerca in grado di ricevere i parametri forniti nel codice PHP sopra scritto.



Una volta salvato il file, la pagina di ricerca avanzata in WordPress è pronta per essere utilizzata dagli utenti.

150 150 Growave Web Agency

Catanzaro

SEDE LEGALE
Via Brigata, 2
88100 - Catanzaro (CZ)

Cosenza

SEDE OPERATIVA
Via Alessandro Magno, 537
87036 - Rende (CS)

©   Growave.