Utilizzare get_posts con argomenti trovati nelle chiavi meta
Sto utilizzando get_posts, ma ho bisogno di raffinare la query basandomi sui post dove una determinata meta_key ha un certo valore.
Qualcosa del genere
<?php $reviews = get_posts('post_type=reviews&numberposts=-1& // per esempio // location=berkshire');
È possibile farlo e se sì, come?
Meraviglioso

get_posts
accetta qualsiasi argomento che WP_Query accetta. Quindi ci sono diverse opzioni.
1. meta_key
e meta_value
<?php
get_posts(array(
// altri argomenti qui
'meta_key' => 'some_key',
'meta_value' => 'some value'
));
2. meta_query
meta_query
è più sofisticato rispetto all'uso di meta_key
e meta_value
. Ad esempio, supponiamo che tu voglia ottenere post che hanno la meta_key con uno di tre valori:
<?php
get_posts(array(
// altri argomenti qui
'meta_query' => array(
// meta_query richiede un array di array, fai attenzione a questo!
array(
'key' => 'some_key',
'value' => array('anOption', 'anotherOption', 'thirdOption'),
'compare' => 'IN'
)
)
));
Ci sono tantissimi esempi che puoi consultare nella sezione dei campi personalizzati della documentazione di WP_Query
.

Sì. È possibile. Usa i parametri meta_key
e meta_value
. meta_key
è per la chiave del campo personalizzato (ad esempio location) e meta_value
è per il valore del campo personalizzato (ad esempio berkshire).
Usa il codice raffinato qui sotto:
/* Argomenti della query. */
$args = array(
'post_type' => 'reviews',
'posts_per_page' => -1,
'meta_key' => 'location',
'meta_value' => 'berkshire'
);
/* Ottieni le recensioni */
$reviews = get_posts( $args );
