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.
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.