web-dev-qa-db-fra.com

Obtenir les messages shortcode plugin et meta_query?

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?

1
AnaRita

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.

2
scribu

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 ..

1
t31os

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.

0
John P Bloch