В одном из проектом у меня есть таксономия с классами школы, которыя я созал по очереди, от первого до 11. Т.е. айди их тоже записаны в базу последовательно. И вот я беру каждый терм (т.е. школный класс) и проверяю наличие постов в каждом из них, после чего вывожу классы, для которых такая комбинация обнаружена. Проблема в том, что классы выводятся не по порядку, хотя функция get_terms() должна по умолчанию выводить именно по айди. Что я делаю не так?
$terms = get_terms('class');
if ( !empty( $terms ) && !is_wp_error( $terms ) ){
echo '
<ul class="col tags_btns">
';
$t = 0;
foreach ( $terms as $term ) {
$term = sanitize_term( $term, 'class' );
$term_link = get_term_link( $term, 'class' );
$args = array(
'post_type' => 'post',
'orderby' => 'id',
'order' => 'ASC',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => array( $rubryka ),
),
array(
'taxonomy' => 'class',
'field' => 'term_id',
'terms' => array( $klasuroku ),
),
),
);
$postslist = get_posts( $args );
$count = count($postslist);
if($count>0) {
echo '<li><a href="/show?rubr='.$rubryka.'&clasid='.$term->term_id.'" class="btn h4 rnd sh clr_def"';
if($klasuroku == $term->term_id) {
echo ' style="background-color: #228ab9;"';
}
echo '>'. $term->name . ' <small>('.$count.')</small>' . '</a></li>';
$t++;
} // count
}
echo '
</ul>
';
}