Bestellung nach DESC, ASC in benutzerdefiniertem WP_Query
-
-
Nun,Sie sollten die WP_Queryposten,um zu sehen,ob sie richtiggebildetist.Well, you should post the WP_Query, to see if it is formed right.
- 0
- 2013-08-13
- Marin Bînzari
-
Daistesin seinerganzen Pracht.Ichbestelle derzeitnurnach diesembooleschen Metawertb/c. Dies war dereinzige Weg,um dieses Level oder diese Sortierung zum Laufen zubringen.Die Website verwendet auch "Überschriften" -Postings,die Vorrang vor "vorgestellten" Posts haben.Daher schließeich siein dieser Abfrage ausThere 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 Antworten
- Stimmen
-
- 2013-08-13
Versuchen Sie Folgendes:
$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; }
-
Wieein Chef Spartakus.Vielen Dankfür diepräzise undgenaue Antwort.Das hat wieein ZaubergewirktLike a boss Spartakus. Thanks for the concise and accurate answer. This worked like a charm
- 0
- 2013-08-13
- ian
-
Sie können auchein Arrayin der Reihenfolgenach Klausel verwenden (WP 4.0 undneuer).You could also use an array in the order by clause (WP 4.0 and newer)
- 1
- 2017-04-25
- Blueriver
Ichmussin einer Abfragemehrstufigbestellen. Das Problembesteht darin,einen Wert DESC und den anderen ASC wiein SQL zubestellen. Dasfolgende SQL scheintmir zugeben,wasich will,wennichesim Terminal ausführe:
Der
pb_issue_featured
istein boolescher Wert. Das Endergebnis,dasichbenötige,ist die Abfrage,um Beiträgemit einem Metawert von 1für dieses Feld oben und alle anderen unten anzuzeigen. Dannist die Bestellung der zweiten Ebene die angegebenemenu_order
(ich verwende das Post-Typ-Bestell-Plugin).Das Problemist,dassmein boolescher Wert hochbisniedrig (1bis 0)geordnet werdenmuss,aber diemenu_orderist das Gegenteil. Was zuerstmit dem Pluginbestellt wird,hateine Menüreihenfolge von 1. Die Verwendung desin WP_Queryintegrierten 'orderby'funktioniert alsonicht. Hatjemand Vorschläge? Ich habein den Filter 'posts_orderby'geschaut,konnteihn abernicht ausführen. Ich warmirnicht sicher,woes angewendet werden sollte oder wieichesbeheben könnte. Es hateinfachnicht sobestellt,wieiches hatte.
Dankefür die Hilfe! Ich werde die aktuelle WP_Query veröffentlichen,wenn sie relevantist,aberich wollte dies so kurz wiemöglich halten.
Die Abfrage argumentiert: