J'utilise Get Posts plug-in pour lister les messages avec le type de message "project". Je souhaite filtrer la liste selon deux champs personnalisés: année (ex. 2006) et état (ex. Complété). J'ai ajouté meta_query
à l'argument get_post
du plugin et j'ai essayé le shortcode:
[get_posts post_type="project" meta_query="array(array('key' => 'state', 'value' =>
'Completed'),array('key' => 'year','value' => '2006'))" suppress_filters="false"]
Cela ne fonctionne pas, bien que je puisse obtenir à la fois "état" et "année" de fonctionner par eux-mêmes en utilisant meta_key
et meta_value
.
Quelqu'un peut-il me mettre dans la bonne direction?
En plus du plugin non mis à jour, cela ne fonctionnera pas car l'argument meta_query est évalué en tant que chaîne:
array(3) {
["post_type"] => string(7) "project"
["meta_query"] => string(96) "array(array('key' => 'state', 'value' =>
'Completed'),array('key' => 'year','value' => '2006'))"
["suppress_filters"] => string(5) "false"
}
Je vous suggère de créer un modèle de page personnalisé , dans lequel vous appelez directement get_posts () avec la méta_query de votre choix.
Vous devrez copier le code qui gère la liste des messages.
Je ne pense pas que le plugin ait été mis à jour pour prendre en charge les nouveaux arguments de requête, ou plus précisément dans ce cas, le meta_query
arg.
La page du plugin répertorie les compatibilités jusqu'à 3.0.5 , et si je me souviens bien, meta_query
a été introduit dans 3.1 , donc naturellement je conclurais que le support n’est pas encore disponible ..
Je peux me tromper, il suffit de relier les points ..
Le plugin utilise shortcode_atts
pour limiter la liste des arguments acceptés:
http://plugins.trac.wordpress.org/browser/nurelm-get-posts/tags/0.3/get-posts.php#L29
meta_query
n'est pas sur cette liste. Je suggérerais de bricoler le plugin ou de demander à l'auteur de le mettre à jour pour autoriser les méta-requêtes.