web-dev-qa-db-fra.com

Est-il possible de commander des posts en utilisant deux méta-valeurs?

J'espère que c'est une question assez simple!

Est-il possible de commander des posts, au début de mon WP install, avec deux méta-valeurs?

J'ai une clé méta appelée genus et une autre appelée species. J'aimerais commencer par trier genus (ASC), puis species (ASC).

Merci d'avance,

2
dunc

Autant que je sache, vous ne pouvez pas le faire en utilisant une méta-requête. Vérifiez cet exemple , fait ce que vous voulez.

1
Rutwick Gangurde

La solution la plus simple à laquelle je puisse penser est de joindre deux fois la méta-table posts avec la table posts. En modifiant le codex par exemple, vous pouvez utiliser ceci:

$querystr = "
SELECT wposts.* 
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta1, $wpdb->postmeta wpostmeta2
WHERE wposts.ID = wpostmeta1.post_id
AND wposts.ID = wpostmeta2.post_id
AND wpostmeta1.meta_key = 'genus'
AND wpostmeta2.meta_key = 'species'
AND wposts.post_type = 'post'
ORDER BY wpostmeta1.meta_value ASC,
         wpostmeta2.meta_value ASC
";
3