tax_query: Заказ по slug?

Короче говоря, я унаследовал сайт WordPress на работе, и у меня есть страница событий, над которой я работаю / исправляю. Я новичок в WordPress и php, и я мог бы использовать некоторую помощь.

Каждое событие классифицируется по школьному семестру (весна, лето, осень). Тем не менее, я не могу заставить семестры заказать что угодно, кроме как в алфавитном порядке (в настоящее время он указан как «Осень, весна, лето … но мне нужно: весна, лето, осень»).

Я хотел бы заказать семестры пули, так как у меня есть пули, установленные в виде кодовых чисел семестра, которые находятся в правильном порядке (Spring = 14, Summer = 15, Fall = 16).

Вот мой код:

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 .= '<ul class="event-calendar">'; foreach ($terms as $semester) : $markup .= '<li class="event-calendar__semester">'; $markup .= '<h4>' . $semester->name . '</h4>'; $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 .= '<div class="event-calendar__events">'; 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 .= '<div class="event-calendar__event">'; $markup .= '<span class="event-date__start">' . $startdate->format('M d') . '</span>'; $markup .= (($ed) && $sd !== $ed) ? ' &ndash; <span class="event-date__end">' . $enddate->format('M d') . '</span>' : ''; $markup .= '<a href="' . get_permalink() . '">' . get_the_title() . '</a>'; $markup .= '</div>'; endwhile; $markup .= '</div>'; endif; wp_reset_query(); $markup .= '</li>'; endforeach; $markup .= '</ul>'; return $markup; } 

Я пробовал несколько разных комбинаций «порядок» и «порядок» безрезультатно. Любая помощь будет серьезно оценена этим newb!

Solutions Collecting From Web of "tax_query: Заказ по slug?"

Если я понимаю ваш сценарий, ваши события находятся в правильном порядке, но ваши семестры – нет.

Если вы измените строку 4

 $terms = get_terms('semesters'); 

в

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

который должен положить семестр в том порядке, который вы ищете. 'order' по умолчанию используется ASC, что вам нужно отобразить 14, затем 15, затем 16, поэтому вам не нужны никакие другие параметры.