Ordnen Sie Beiträge nach Metawert UND veröffentlichtem Datum

Ich möchte WP-Posts über den Metaschlüssel “sort_date” bestellen und wenn es nicht existiert, sollte es das Veröffentlichungsdatum des Posts verwenden, um Posts zu bestellen.

Unten ist der Code, den ich momentan verwende

function pre_get_posts_custom($wp_query) { if ( !is_admin() && $wp_query->is_main_query() && !is_page() ) { $meta_key = 'sort_date'; $wp_query->set( 'post_type', array( 'post', 'article' ) ); $wp_query->set( 'meta_type', 'DATE' ); $wp_query->set('meta_query', array( 'relation' => 'OR', array( 'key' => $meta_key, 'compare' => 'NOT EXISTS', ), array( 'relation' => 'OR', array( 'key' => $meta_key, 'value' => 'on', ), array( 'key' => $meta_key, 'value' => 'on', 'compare' => '!=', ), ), )); $wp_query->set( 'orderby', array( 'meta_value' => 'DESC', 'date' => 'DESC' ) ); } } add_filter('pre_get_posts', 'pre_get_posts_custom' ); 

Der obige Code bewirkt, dass die Posts mit dem Meta-Schlüssel “sort_date” zuerst und dann alle Posts ohne Meta-Schlüssel-Wert angezeigt werden.

Beispielsweise

Post A: hat Metaschlüsselwert 2016-9-28

Post B: Kein Metaschlüssel … Veröffentlichungsdatum ist 2017-6-15

Der obige Code lässt den Post A zuerst erscheinen, ich möchte, dass Post B zuerst erscheint, da es das neueste Datum hat. Ich möchte, dass sowohl der Metaschlüsselwert als auch das veröffentlichte Datum als eins arbeiten, anstatt beide separat zu sortieren.

Solutions Collecting From Web of "Ordnen Sie Beiträge nach Metawert UND veröffentlichtem Datum"