J'ai un problème que j'essaie de résoudre en ce moment et d'avoir un problème pour trouver un moyen de le faire correctement.Wordpress trier par valeurs meta
J'ai une série de cours de collège que j'ai besoin de trier je peux le trier par un champ méta pour l'année juste très bien. Mais quand j'arrive à trier par semestre, il le trie en ordre alphabétique et il finit par trier par Hiver, Printemps, Automne ou Automne, Printemps, Hiver selon si je lui dis ASC ou DESC.
J'ai besoin de savoir comment faire pour cela dans l'ordre de préférence sans ajouter un autre champ aux postes de priorité de tri
requêtes args actuellement écrites comme suit ce qui est évidemment un peu en désordre.
$args = array(
'post_type' => 'mcm_geri-ed',
'posts_per_page' => $posts_per_page,
'meta_query' => array(
'semester' => array(
'key' => 'semester',
),
'year' => array(
'key' => 'year'
)
),
'orderby' => array(
'year' => 'DESC',
'semester' => array(
'value' => 'date'
)
),
'paged' => $paged
);
Je recommanderais cela aussi - ou les sélectionner tous et faire le tri manuellement s'il n'y en a pas trop. Il devrait être possible de faire avec WP_Query cependant. – Mikk3lRo
Je suis d'accord sur le principe, mais j'utiliserais de préférence 'FIND_IN_SET (meta_semester, 'Fall, Spring, Winter') ASC'. FIND_IN_SET renvoie la position du premier argument dans la deuxième chaîne séparée par des virgules. Ils doivent donc être listés dans l'ordre souhaité. – CBroe
Je reprends mon commentaire sur le fait que ce soit possible avec WP_Query après une heure d'essai. Vous pouvez [ajouter la capacité] (https://gist.github.com/mikeschinkel/6402058) cependant. Et il est assez facile d'utiliser le hook 'posts_orderby' comme suggéré par janh. – Mikk3lRo