tax_query: Bestellung von slug?

Lange Rede, kurzer Sinn, ich habe eine WordPress-Site bei der Arbeit geerbt und ich habe eine Ereignisseite, an der ich gerade arbeite. Ich bin neu in WordPress und PHP und ich könnte etwas Hilfe gebrauchen.

Jede Veranstaltung ist nach dem Schulsemester (Frühling, Sommer, Herbst) kategorisiert. Allerdings kann ich die Semester nicht dazu bringen, etwas anderes als alphabetisch zu bestellen (es ist momentan gelistet als: Herbst, Frühling, Sommer … aber ich brauche: Frühling, Sommer, Herbst).

Ich würde gerne die Semester mit Slug bestellen, da ich die Nacktschnecken als Semester-Codenummern in der richtigen Reihenfolge (Spring = 14, Summer = 15, Fall = 16) gesetzt habe.

Hier ist mein Code:

public function eventCalendar() { global $post; $type = array('event'); $terms = get_terms('semesters'); $markup = ''; $count = 0; // List the semester name, // and list each event under that term. // Events should be listed chronologically based on start date. $markup .= '
    '; foreach ($terms as $semester) : $markup .= '
  • '; $markup .= '

    ' . $semester->name . '

    '; $events = new WP_Query(array( 'post_type' => 'events', 'posts_per_page' => -1, 'meta_key' => 'start_date', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'semesters', 'terms' => $semester->term_id, ), ), )); if ($events->have_posts()) : $markup .= '
    '; while ($events->have_posts()) : $events->the_post(); $sd = get_field('start_date', false, false); $ed = get_field('end_date', false, false); $startdate = new DateTime($sd); $enddate = new DateTime($ed); $markup .= '
    '; $markup .= '' . $startdate->format('M d') . ''; $markup .= (($ed) && $sd !== $ed) ? ' – ' . $enddate->format('M d') . '' : ''; $markup .= '' . get_the_title() . ''; $markup .= '
    '; endwhile; $markup .= '
    '; endif; wp_reset_query(); $markup .= '
  • '; endforeach; $markup .= '
'; return $markup; }

Ich habe mehrere verschiedene Kombinationen von ‘Order’ und ‘Orderby’ vergeblich ausprobiert. Jede Hilfe würde ernsthaft von diesem Newb geschätzt werden!

Solutions Collecting From Web of "tax_query: Bestellung von slug?"

Wenn ich Ihr Szenario verstehe, sind Ihre Veranstaltungen in der richtigen Reihenfolge, aber Ihre Semester sind nicht.

Wenn Sie Zeile 4 ändern

 $terms = get_terms('semesters'); 

zu

 $terms = get_terms('semesters', array( 'orderby' => 'slug' ) ); 

Das sollte die Semester in der Reihenfolge bringen, die Sie suchen. “order” ist standardmäßig auf ASC eingestellt. Sie müssen 14, dann 15 und dann 16 anzeigen. Sie sollten also keine anderen Parameter benötigen.