Trier par DESC, ASC dans WP_Query personnalisé
-
-
Ehbien,vous devriezpublier le WP_Query,pour voir s'ilest correctementformé.Well, you should post the WP_Query, to see if it is formed right.
- 0
- 2013-08-13
- Marin Bînzari
-
Le voilà danstoute sagloire.Jene commande actuellementpar rien d'autre que cetteméta valeurbooléenneb/c c'était le seulmoyen defairefonctionner ceniveau ou cetri.Le site utilise également des articles «titres» qui ontpriorité sur les articles «vedettes».Ainsije lesexclut dans cette requêteThere it is in all it's glory. I'm currently not ordering by anything but that boolean meta value b/c it was the only way to get that level or sorting working. The site also uses 'headline' posts which take precedence over 'featured' posts. Thus I exclude them in this query
- 0
- 2013-08-13
- ian
-
1 réponses
- votes
-
- 2013-08-13
Essayez ceci:
$args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' => 'DESC', 'posts_per_page' => $posts, 'paged' => $paged, 'paged' => 1, 'meta_query' => array( array( 'key' => 'headline', 'value' => 1, 'compare' => '!=' ) ) ); add_filter( 'posts_orderby', 'filter_query' ); $q = new WP_Query($args); remove_filter( 'posts_orderby', 'filter_query' ); function filter_query( $query ) { $query .= ', wp_posts.menu_order ASC'; return $query; }
Try this:
$args = array( 'post_type' => 'post', 'meta_key' => 'pb_issue_featured', 'orderby' => 'meta_value', 'order' => 'DESC', 'posts_per_page' => $posts, 'paged' => $paged, 'paged' => 1, 'meta_query' => array( array( 'key' => 'headline', 'value' => 1, 'compare' => '!=' ) ) ); add_filter( 'posts_orderby', 'filter_query' ); $q = new WP_Query($args); remove_filter( 'posts_orderby', 'filter_query' ); function filter_query( $query ) { $query .= ', wp_posts.menu_order ASC'; return $query; }
-
Comme unpatron Spartakus.Mercipour la réponse conciseet précise.Cela afonctionné comme un charmeLike a boss Spartakus. Thanks for the concise and accurate answer. This worked like a charm
- 0
- 2013-08-13
- ian
-
Vouspouvez également utiliser untableau dans la clause orderby (WP 4.0et plus récent)You could also use an array in the order by clause (WP 4.0 and newer)
- 1
- 2017-04-25
- Blueriver
Je doiseffectuer untri àplusieursniveaux dans une requête. Leproblèmeest de commander une valeur DESCet l'autre ASC comme dans SQL. Le SQL suivant sembleme donner ce queje veux quandje l'exécute dans leterminal:
Le
pb_issue_featured
est une valeurbooléenne. Le résultatfinal dontj'aibesoinest la requêtepour afficher lesmessages qui ont une valeurméta de 1pour ce champen haut,puistous les autres ci-dessous. Ensuite,le deuxièmeniveau de classementest lemenu_order
désigné (j'utilise leplugin de commande destypes depublication).Leproblèmeest quema valeurbooléenne doit être ordonnée de hauten bas (1 à 0)mais lemenu_orderest le contraire. Ce quiest commandéen premier avec leplugin a un ordre demenu de 1. Donc,utiliser le 'orderby'intégré dans WP_Queryne fonctionnepas. Quelqu'un a des suggestions? J'ai regardé dans lefiltre 'posts_orderby'maisje n'aipaspu lefaireprendre. Jene savaispas vraiment oùil devait être appliquéni commentje pourrais le résoudre. Iln'atout simplementpas réorganisé lafaçon dontje l'avais.
Mercipour l'aide! Jepublierai la WP_Query réelle sielleestpertinente,maisje voulais que cela soit aussi court quepossible.
La requête args: