Cosa sono i custom fields?
In wordpress abbiamo la possibilità di estendere le informazioni di un singolo articolo tramite l’utilizzo dei campi personalizzati (custom fields).
Una volta inserite nel post queste informazioni aggiuntive, possiamo estrapolarle e visualizzarle a nostro piacimento all’interno del nostro tema.
I custom fields sono composti da una chiave (key) e un valore (value). La chiave è il nome del campo che vogliamo associare al post mentre il valore, come appunto ci dice il nome, è il contenuto che avrà quella determinata chiave.
Come possiamo selezionare i post che hanno una determinata chiave e un determinato valore?
Tramite la funzione query_posts, nativa di wordpress, possiamo selezionare gli articoli che corrispondono ad un criterio di ricerca da noi impostato quindi, per fare un esempio, noi vogliamo selezionare tutti quei post che hanno come campo personalizzato key=tipologia e value=muratore.
Passando a query_posts degli argomenti possiamo raggiungere il nostro obiettivo:
$posts = query_posts( array(
'post_type' => 'post',
'meta_key' => 'tipologia',
'meta_value' => muratore
) );
print_r($posts);
Effettuando l’output della query, visualizzeremo tutti i post che corrispondo a questo criterio.
Possiamo anche ampliare la query passando argomenti aggiuntivi; ad esempio vogliamo selezionare tutti i post che hanno come campo personalizzato key=tipologia e value=muratore e key=regione e value=lazio modificheremo quindi gli argomenti da passare a query_posts in questa maniera:
$posts = query_posts( array(
'post_type' => 'post',
'meta_query' => array(
array(
'key' => 'tipologia',
'value' => 'muratore'
),
array(
'key' => 'regione',
'value' => 'lazio'
)
)
) );
print_r($posts);
In questo modo visualizzeremo tutti gli articoli che rispettano il criterio di ricerca impostato.
Gli argomenti che possiamo passare sono moltissimi, possiamo selezionare post che hanno un post_type differente modificando l’argomento post_type=’post_type_differente’ oppure, possiamo effettuare dei confronti sui dati come l’esempio seguente:
query_posts( array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'price', 'value' => array( 100, 200 ), 'compare' => 'BETWEEN', 'type' => 'numeric', ), array( 'key' => 'description', 'value' => 'round', 'compare' => 'NOT LIKE' ) ) ) );
In questo esempio selezioniamo tutti i post che rispecchiano i seguenti criteri di ricerca:
- il post_type è uguale a product
- la key uguale a price e il value compreso tra 100 e 200
- la key uguale a description, il value diverso da round
- LIKE
- NOT LIKE
- IN
- NOT IN
- BETWEEN
- NOT BETWEEN
L’utilizzo di questo codice ha molteplici applicazioni, lo potremmo utilizzare ad esempio all’interno di un template personalizzato rendendo così wordpress malleabile ed adattarlo a tuttle le nostre esigenze. Ogni volta questo cms ci stupisce sempre di più per la sua flessibilità e la sua semplicità di sviluppo.
Complimenti allo staff di sviluppo di wordpress.
Possiamo fare riferimento all’articolo originale che troveremo al seguente link: scribu.net