Intereting Posts
Получить родителя верхнего уровня пользовательского таксономического термина Проблема в отношении $ wpdb-> prepare () Создание пользовательского виджета WordPress и остановка js от запуска дважды (один раз в активном виджетах один раз в селекторе виджета)? Синхронизировать контент на нескольких страницах? Использовать AJAX в плагине WordPress для получения данных из пользовательской базы данных? Включая контент из устаревшего приложения: через плагин или пользовательский контент? Перемещение указателя массива внутри цикла WP_Query while Размещение фонового изображения с текстом поверх него Показать div только в том случае, если сообщение находится в определенной категории Какие возможности мне не хватает для отображения? Как я могу заменить URL-адрес oEmbed в сообщении с фактическим встраиванием HTML Как передавать значения для построения функции с помощью Actions? Печать определенного размера изображения в петле камбуза Добавление мгновенного поиска на страницу WordPress WP All Import: каналы фидов

Заказать get_terms по терминологии meta

У меня есть обычная таксономия под названием prod-cat

Я хочу заказать вывод в шаблоне по номеру, поэтому я добавил term_meta для таксономии следующим образом:

add_action( 'prod-cat_add_form_fields', 'add_feature_group_field', 10, 2 ); function add_feature_group_field($taxonomy) { ?> <div class="form-field term-order-wrap"> <label for="term-order">Order</label> <input type="text" name="wm-cat-prod-order" /> </div> <?php } 

А потом:

 add_action( 'created_prod-cat', 'save_feature_meta', 10, 2 ); function save_feature_meta( $term_id, $tt_id ){ if( isset( $_POST['wm-cat-prod-order'] ) && '' !== $_POST['wm-cat-prod-order'] ){ add_term_meta( $term_id, 'wm-cat-prod-order', $_POST['wm-cat-prod-order'], true ); } } 

У меня работает term_meta, он сохраняется. Затем в шаблоне я делаю это:

 $args = array( 'taxonomy' => 'categoria-de-productos', 'orderby' => 'wm-cat-prod-order', 'order' => 'ASC', 'hide_empty' => false, 'hierarchical' => false, 'parent' => 0, ); $terms = get_terms( $args ); 

Но я не могу заставить его упорядочить по метаму «wm-cat-prod-order». Кто-нибудь на этом? благодаря

get_terms поддерживает meta_query который вызывает новый параметр WP_Meta_Query, как вы можете видеть здесь . Чтобы запросить свои условия с помощью желаемого мета, вы можете изменить вызов функции на что-то вроде этого:

 $args = array( 'taxonomy' => 'categoria-de-productos', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'hide_empty' => false, 'hierarchical' => false, 'parent' => 0, 'meta_query' => [[ 'key' => 'wm-cat-prod-order', 'type' => 'NUMERIC', ]], ); $terms = get_terms( $args ); 

Этот код не проверен и может потребоваться изменить в вашем примере. Но ссылки должны помочь вам решить проблему.

для меня я создал обычную таксономию, и в этой пользовательской таксономии у меня была обычная мета. Я хотел иметь в блоке администратора колонку и сделать ее сортируемой. чтобы сделать сортировку для пользовательской таксономии в обычном мета, я сделал это.

https://pastebin.com/vr2sCKzX

 public function pre_get_terms( $query ) { $meta_query_args = array( 'relation' => 'AND', // Optional, defaults to "AND" array( 'key' => 'order_index', 'value' => 0, 'compare' => '>=' ) ); $meta_query = new WP_Meta_Query( $meta_query_args ); $query->meta_query = $meta_query; $query->orderby = 'position_clause'; 

} Я нашел ответ в этой ссылке https://core.trac.wordpress.org/ticket/34996

Мне просто пришлось адаптировать ответ, указанный в комментариях @ eherman24