Posts nach Datum und Postleitzahl in der Query sortieren

  • Hallo zusammen,
    ich habe meinen Posts mit ACF die Felder "featured" und "zipcode" hinzugefügt. Das Featured-Feld ist ein Datum-Feld, dort wird das Datum eingetragen, bis zu welchem das Posting hervorgehoben werden soll. Wenn das Posting nicht hervorgehoben werden soll, trage ich dort das Datum des Vortags ein. Mit dieser If-Abfrage werden dann die Featured-Postings identifiziert und hervorgehoben:

    PHP
    <?php  $today = date('Ymd'); $featured = get_field('featured'); if ( $featured  >= $today ) { ...FEATURED... } ?>

    Jetzt würde ich gerne alle Posts in der Query folgender Reihenfolge sortieren:

    1. Featured Posts (Datum absteigend)
    2. Zipcode (aufsteigend)
    3. Wenn Datum älter als Heute (not Featured) nur nach Zipcode (aufsteigend), da sonst alle Posts durch ihr Datum vorsortiert werden

    Mit folgender Abfrage bekomme ich die ersten beiden Punkte hin:

    Allerdings bleibt der dritte Punkt so ungelöst und alle Posts werden nach Datum und erst dann nach Zipcode sortiert.

    Wenn ich die meta_query wie folgt ändere:

    Code
    'featured'  => array( 'key' => 'featured', 'value' => $today, 'type' =>  'date', 'compare' => '>=' ),

    ..werden nur Postings angezeigt, deren Featured-Datum in der Zukunft liegt.

    Ist es irgendwie möglich den Code der Query so anzupassen, dass nur im Falle eines höheren Featured-Datums eine Sortierung nach Datum erfolgt?

    Also von der Logik her in etwa so:

    PHP
    <?php  $today = date('Ymd'); $featured = get_field('featured'); if ( $featured  >= $today ) { 'orderby' => array( if ( $featured >= $today ) {  'featured' => 'DESC', } 'zipcode' => 'ASC', 'title' => 'ASC'),  } ?>


    Ich bin für jeden Hinweis dankbar :-)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!