Utilizzare get_posts con argomenti trovati nelle chiavi meta

13 ott 2011, 14:48:42
Visualizzazioni: 38.3K
Voti: 8

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

0
Tutte le risposte alla domanda 2
0
19

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.

8 lug 2012 07:47:08
0

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 );
13 ott 2011 16:31:14