Support » Allgemeine Fragen » Sortierung nach Query

  • Gelöst peacefulwarri0r

    (@peacefulwarri0r)


    Hallo,

    ich habe ein Problem mit der Sortierung.
    Ich möchte nach einem Timestamp sortieren, nur wird dieses Feld erst nach der Query gesetzt.

           $args = array(
              'post_status'   => 'publish',
              'cat'           => $cog_categories,
              'showposts'     => $cog_max_posts,
              'orderby'       => 'date',
              'order'         => 'DESC',
              );
            $query = new WP_Query($args);
          
          // hier setze ich den Timestamp als Feld date_timestamp
          while ( $query->have_posts() ) : $query->the_post();
            $dates = explode(";", get_field('termine'));
            $dates = explode(",", $dates['0']);
            $dates = explode("-", $dates['0']);
            $post->date_timestamp = strtotime($dates['0']);
          endwhile; 
    
         while ( $query->have_posts() ) : $query->the_post();
           echo "gebe post aus" // in der Sortierung nach date_timepstamp
         endwhile;
    

    So scheint es nicht zu klappen:

          usort( $query->posts, function ( $post_a, $post_b ) {
              $a = get_post_meta( $post_a->date_timestamp, 'key', true );
              $b = get_post_meta( $post_b->date_timestamp, 'key', true );
              if ( $a == $b ) {
                  return 0;
              }
              return ( $a > $b ) ? - 1 : 1;
          } );
    

    Vielen Dank!

Ansicht von 1 Antwort (von insgesamt 1)
  • Thread-Starter peacefulwarri0r

    (@peacefulwarri0r)

    Got it!

    usort($query->posts, function($firstItem, $secondItem) {
            $timeStamp1 = $firstItem->date_timestamp;
            $timeStamp2 = $secondItem->date_timestamp;
            // switch timeStamp1 and timeStamp2 for DESC
            return $timeStamp1 - $timeStamp2;
          });
Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „Sortierung nach Query“ ist für neue Antworten geschlossen.