Benutzerdefinierte Reihenfolge für Mysql-Array

Ich habe eine Seite von Beiträgen, jeder Beitrag hat ein Benutzerdefiniertes Feld “abgelaufen”, das ein Datum im Format YYYY-MM-DD enthält, das zum Bestellen der Beiträge verwendet wird. Dieses Datum wird für ein Skript verwendet, das dem Besucher mitteilt, ob ein Angebot entweder abgelaufen ist oder X Tage länger gültig ist.

Mein Array ist wie folgt:

$postid = get_the_ID(); $meta1 = get_post_meta($postid, 'shop', true); $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'shop', 'value' => $meta1 ) ), 'paged' => $paged, 'posts_per_page' => '4', 'meta_key' => 'expired', 'orderby' => 'meta_value', 'order' => 'ASC' ); $query = new WP_Query( $args ); 

Dadurch werden die Posts mit dem Meta-Wert “abgelaufen”, dem ältesten Datum oben, sortiert.

Wenn das “abgelaufene” Metawertdatum vor “HEUTE” liegt, zeigt das Postskript “ABGELAUFEN” an.

Wenn das “abgelaufene” Meta_Wertdatum nach “HEUTE” liegt, zeigt das Skript “Verfällt in X Tagen”

Wie Posts aktuell angezeigt werden:

Wenn ein Beitrag “abläuft”, bleibt er aktuell an der Spitze der Beitragsliste.

 Post 1: Expired Post 2: Expired Post 3: Expires in 3 days Post 4: Expires in 4 days Post 5: Expires in 6 days 

Stattdessen möchte ich es automatisch so bestellen: (Notiz Post # zum Vergleich mit oben)

 Post 3: Expires in 3 days Post 4: Expires in 4 days Post 5: Expires in 6 days Post 2: Expired Post 1: Expired 

Wie kann ich eine benutzerdefinierte Bestellung erstellen, bei der ein Beitrag nach Ablauf eines Beitrags (dh das abgelaufene Datum liegt vor dem heutigen Datum) auf der Rückseite der Beitragsliste steht und immer noch über älteren abgelaufenen Beiträgen liegt?

Vielen Dank.

Solutions Collecting From Web of "Benutzerdefinierte Reihenfolge für Mysql-Array"

Auf den ersten Blick würde ich denken, dass Ihre Anfrage nicht korrekt ist. Widerhallen Sie die Variablen, um sicherzustellen, dass sie korrekt sind? Wenn Sie einstellen

 'post_per_page' => 4 

und du bekommst 5 Posts, dann scheint etwas los zu sein. Wo es eine Zahl ist, glaube ich, dass Sie die Anführungszeichen weglassen können. Wenn das nicht behoben wird, würde ich $ meta1 aussprechen, um sicherzustellen, dass das korrekt abfragt, dann würde ich es sogar versuchen

 'order' => 'DESC'