Yastr
@Yastr

Как отсортировать массив терминов таксономии по значению поля?

Добрый вечерочек!

Получаю термины таксономии.
add_action('init', 'get_proizv_terms');
function get_proizv_terms() {
    $terms = get_terms( array(
        'hide_empty'  => 0,  
        'orderby'     => 'meta_value_num',
        'order'       => 'ASC',
        'taxonomy'    => 'pa_obem-resivera-l',
        'pad_counts'  => 1
    ));
}


Во первых не сортируется по meta_value_num, сортировка происходит как я понял по названию, а не по цифровому его значению.
5b1812c3238e7308677417.png

Во вторых мне необходимо обработать его как массив, пытаюсь преобразовать его при помощи
->to_array(); получаю ошибку.
https://wp-kama.ru/function/WP_Post::to_array

Подскажите пожалуйста, как мне преобразовать его в массив и произвести нормальную сортировку по цифровому значению name.
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Yastr
@Yastr Автор вопроса
При помощи Анатолия пришел к простому решению.
function attrName_to_termMetaOrder() {
    $terms = get_terms(array(
        'hide_empty'  => 0, 
        'order'       => 'ASC',
        'taxonomy'    => 'pa_proizvoditelnost',
        'pad_counts'  => 1
    ));

    if (!empty($terms) && !is_wp_error($terms)){
        foreach ($terms as $term) {
            update_term_meta($term->term_id, 'order_pa_proizvoditelnost', intval($term->name), "");
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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