Bestellen von Posts nach Metadaten

In meinem Plugin verwende ich diese statementen, um eine Liste von Posts zu erhalten:

$args = array( 'numberposts' => -1, 'offset' => 0, 'meta_query' => array( array( 'key' => 'metadata1', 'value' => '80', 'compare' => ' 'UNSIGNED' ), array( 'key' => 'metadata2', 'value' => '4.6', 'compare' => ' 'DECIMAL' ), ), 'post_type' => 'post', 'post_status' => 'publish', 'suppress_filters' => true ); $posts = get_posts($args); foreach ($posts as $post) { // some work on $post } 

Wie kann ich diese Beiträge nach metadata1 aufsteigend oder nach metadata2 aufsteigend bestellen? (Beachten Sie, dass metadata1 eine Ganzzahl ohne Vorzeichen ist und metadata2 eine Dezimalzahl.)

Solutions Collecting From Web of "Bestellen von Posts nach Metadaten"

Versuchen Sie Meta_Wert_num

 'meta_key' => 'metadata1', 'orderby' => 'meta_value_num' 

Fügen Sie diese 2 Parameter zu $ ​​args hinzu. Dies berücksichtigt die Sortierung von metadata1 als numerisch

Wenn Sie dies nicht mit get_posts erreichen können, würde ich Ihnen empfehlen, zu WP_Query zu wechseln .

Wie Mridul bereits sagte, müssen Sie, um nach Zahlen zu 'orderby' Parameter 'meta_value_num' bis 'orderby' angeben. Ich bin jedoch nicht sicher, dass Sie dies mit einem Standard get_posts() tun können.