Benutzerdefinierte Feldsortierung funktioniert nicht (WP 3.8.1)

Ich versuche, eine benutzerdefinierte wp_query mit dem Datumsformat YYYYMMDD (php: date (‘Ymd’)) zu sortieren. Dies wird nicht als Datumsfeld, sondern als numerisches Feld im benutzerdefinierten Feld betrachtet.

Mein WP-QUERY-Code ist der folgende:

$today = date("Ymd", strtotime(current_time('mysql'))); $args = array( "post_type" => "post", "post_status" => "publish", "posts_per_page" => -1, "cat" => 13, "meta_query" => array( array( "key" => "event-date", 'type' => 'NUMERIC', 'value' => $today, "compare" => ">=" ) ), 'orderby' => 'meta_value_num', 'order' => 'ASC' ); $eventsbody = new WP_Query($args); var_dump($eventsbody->request); 

Auf dem Dump erzeugt es den folgenden Code:

 "SELECT wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) LEFT JOIN wp_icl_translations t ON wp_posts.ID = t.element_id AND t.element_type LIKE 'post\_%' LEFT JOIN wp_icl_languages l ON t.language_code=l.code AND l.active=1 WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (13) ) AND wp_posts.post_type IN ('post', 'page', 'attachment') AND (wp_posts.post_status = 'publish') AND ( (wp_postmeta.meta_key = 'event-date' AND CAST(wp_postmeta.meta_value AS DATE) >= '20140326') ) AND (t.language_code='el' OR t.language_code IS NULL ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC " 

Das Problem ist, dass es die meta_value_num-Reihenfolge ignoriert und die Reihenfolge von wp_posts.post_date ausführt. Ist es ein wp3.8.1 Problem?

Solutions Collecting From Web of "Benutzerdefinierte Feldsortierung funktioniert nicht (WP 3.8.1)"

Ich denke, Ihre Abfrage Argumente fehlen meta_key , in diesem Fall sollte 'event-date' . Sie müssen es außerhalb der Meta-Abfrage für orderby arbeiten. Versuche dies:

 $today = date("Ymd", strtotime(current_time('mysql'))); $args = array( "post_type" => "post", "post_status" => "publish", "posts_per_page" => -1, "cat" => 13, "meta_query" => array( array( "key" => "event-date", 'type' => 'NUMERIC', 'value' => $today, "compare" => ">=" ) ), 'meta_key' => 'event-date', // meta_key added 'orderby' => 'meta_value_num', 'order' => 'ASC' ); $eventsbody = new WP_Query($args);