Support » Allgemeine Fragen » Mehrere orderby parameter kombinieren

  • Hallo,

    ich muss für eine Such / Filter Anfrage bzw. Funktion mehrere Parameter für das „orderby“ Argument kombinieren und dann noch konstant mit einer Paginierung ausgeben. Das grundsätzliche kombinieren funktioniert schon so:

    $args['orderby'] = array( 'meta_value_num' => $request["hotelorder"], 'ID' => 'ASC' );

    Problem ist jetzt das der zweite Parameter nicht die ID sein darf sondern „rand“ bzw. random sein soll. Um das mit einer konsistenten Paginierung zu realisieren habe ich schon den Verweis auf MySQL RAND + Session Seed gefunden. Verkürzt dargestellt sowas:

    $orderby = 'RAND(' . $_SESSION['seed'] . ')';

    Die Frage ist jetzt wie ich diese beiden Dinge kombiniere. Schematisch aber (scheint aber nicht zu funktionieren also im Prinzip so etwas:

    $args['orderby'] = array( 'meta_value_num' => $request["hotelorder"], 'RAND( ' . $_SESSION['seed'] . ')' );

    Vielen Dank für Tips und Hinweise.

    Beste Grüsse,
    Nils

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Moderator Bego Mario Garde

    (@pixolin)

    Das ist etwas arg aus dem Zusammenhang gerissen, wenn du nur eine paar Argumente hinwirfst, ohne die Funktion zu nennen, in der du das verwenden möchtest.
    Poste doch bitte mal deine komplette Query.

    Für Anwender-Support sprengt das übrigens schon ein wenig den (oder zumindest meinen) zeitlichen Rahmen. Da bist du auf Stackexchange besser aufgehoben. Vielleicht kannst du sogar mit dieser Antwort schon etwas anfangen? https://wordpress.stackexchange.com/a/218724/129212

    Ich muss gestehen ich habe bewusst den weiteren Rahmen ausgelassen aufgrund der Komplexität. Das ganz findet nämlich auch noch in einem „rest_{$this->post_type}_query“ filter statt, da die Sortierung in einem REST Call stattfinden muss und auch nur wenn die Parameter gesetzt sind.

    Der Link sieht aber schon ganz interessant aus und ansonsten verlage ich das Thema dann tatsächlich zu Stackexchange.

    Danke trotzdem.

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)