Hai creato un Template Custom per WordPress, hai anche impostato dei campi personalizzati per i tuo post, ma ora vuoi abilitare la ricerca di WordPress anche ad essi? Nelle prossime righe ti spiegherò come farlo in pochi e semplici passaggi.
Infatti la funzione base WP Search effettua la query di ricerca solo nei campi di default, quali titolo e contenuti. Esistono personalizzazioni della query di ricerca per aggiungere altri elementi, ma se hai impostato molti campi personalizzati ai post questo potrebbe essere un lavoro molto lungo e noioso.
Per fortuna che con una piccola funzione, da inserire nel file functions.php del template tutto è risolvibile.

WordPress Search in all fields
La funzione che trovate qui sotto in pratica dice a WordPress di ampliare la ricerca a tutti i campi del post.
global $wpdb;
// Nel caso di un form di ricerca custom decommentare sotto
// $keyword = sanitize_text_field( $_POST['keyword'] );
// Nel caso invece del form di ricerca base di WordPress
$keyword = get_search_query();
$keyword = '%' . $wpdb->esc_like( $keyword ) . '%';
// Ricerca in tutti i campi
$post_ids_meta = $wpdb->get_col( $wpdb->prepare( "
SELECT DISTINCT post_id FROM {$wpdb->postmeta}
WHERE meta_value LIKE '%s'
", $keyword ) );
// Ricerca nel post_title e nel post_content
$post_ids_post = $wpdb->get_col( $wpdb->prepare( "
SELECT DISTINCT ID FROM {$wpdb->posts}
WHERE post_title LIKE '%s'
OR post_content LIKE '%s'
", $keyword, $keyword ) );
$post_ids = array_merge( $post_ids_meta, $post_ids_post );
// Args Query
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'post__in' => $post_ids,
);
$query = new WP_Query( $args );
if ( $query->have_posts() ): while ( $query->have_posts() ) : $query->the_post();
// Inserire ciò che si vuole stampare qui dentro
endwhile; endif;
Questo codice è stato testato su un totale di oltre 1500 post pubblicati, ed è funzionante.
Se avete qualche domanda o qualche dubbio non esitate a contattarci!
Invece per maggiori informazioni sul mondo di WordPress ti consiglio queste letture:
WordPress (Pocket)
Sviluppare con WordPress
WordPress. La guida completa. Creare blog e siti professionali
Seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.
Web Developer da oltre 10 anni e Blogger. Ogni giorno si applica al perfezionamento e all’apprendimento in campo informatico, di comunicazione e di marketing.