J'utilise get posts, mais je dois affiner la requête en fonction des posts où une certaine méta_key a une certaine valeur.
Quelque chose comme ça
<?php $reviews = get_posts('post_type=reviews&numberposts=-1& // eg. // location=berkshire');
Est-il possible de faire cela et si oui comment?
Merveilleux
get_posts
accepte tous les arguments que WP_Query accepte. Donc, il y a quelques options.
1. meta_key
et meta_value
<?php
get_posts(array(
// some more args here
'meta_key' => 'some_key',
'meta_value' => 'some value'
));
2. meta_query
meta_query
est plus sophistiqué que d'utiliser meta_key
et meta_value
. Par exemple, supposons que vous souhaitiez obtenir des publications contenant la méta_key avec l'une des trois valeurs suivantes:
<?php
get_posts(array(
// more args here
'meta_query' => array(
// meta query takes an array of arrays, watch out for this!
array(
'key' => 'some_key',
'value' => array('anOption', 'anotherOption', 'thirdOption'),
'compare' => 'IN'
)
)
));
Il y a une tonne d'exemples à vérifier dans la section des champs personnalisés de la documentation de WP_Query
.
Oui. C'est possible. Utilisez les paramètres meta_key
et meta_value
. meta_key
est destiné à la clé de champ personnalisé (emplacement, par exemple) et meta_value
à la valeur de champ personnalisé (par exemple, berkshire).
Utilisez le code raffiné ci-dessous:
/* Query args. */
$args = array(
'post_type' => 'reviews',
'posts_per_page' => -1,
'meta_key' => 'location',
'meta_value' => 'berkshire'
);
/* Get Reviews */
$reviews = get_posts( $args );