@jazzman7

Как вывести метки в порядке числового возрастания?

Доброго дня! Есть метки: "10 квт, 12 квт, 100 квт, 200 кв и т.д.", пытаюсь вывести их в порядке возрастания, но они выводятся почему-то в таком виде: "10 квт, 100 квт, 1000 квт, 12 квт, 120 квт,..." подскажите пожалуйста, как реализовать задачу?
Мой код:
$terms = get_terms( array(
                   'hide_empty'  => 0,
                   'orderby'     => 'name',
                   'order'       => 'ASC',
                   'taxonomy'    => 'product_tag',
               ) );
               if ( $terms ) {
                   echo '<ul>';

                   foreach ($terms as $term) {

                       echo '<li>';

                       echo '<a href="' . esc_url(get_term_link($term)) . '">';
                       echo $term->name;
                       echo '</a>';
                       echo '</li>';
                       
                   }
                   echo '</ul>';
               }
  • Вопрос задан
  • 23 просмотра
Решения вопроса 1
@KingAnton
Можно сформировать массив и отсортировать его средствами php
$sort_tag = [];
foreach ($terms as $term) {
    $sort_tag[$term->name] = esc_url(get_term_link($term->term_id));
}
ksort($sort_tag, SORT_NATURAL);

foreach ($sort_tag as $tag_name => $tag_url) {
    echo '<li><a href="' . $tag_url . '">' . $tag_name .'</a></li>';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы