Intereting Posts
Страница, найденная с помощью «Обычная», но не с именем «Post name» Сохраняется ли вместо <input type = "submit"> с помощью кнопки <button type = "submit"> в форме поиска WordPress Посмотреть другие должности в подкатегории Темы WordPress для неполной установки или установки Моя функция SQL для изменения имени пользователя Ограничение плагина только для загрузки его CSS и JS на выбранные страницы? Как переопределить тег заголовка для конечных точек woocommerce? добавлено разрешение новому пользователю на включение плагинов с помощью редактора роли пользователя, но не отображается меню плагина Пользовательское поле, добавление класса в тег привязки Могу ли я использовать две разные пользовательские таблицы для установки WP? Сделать страницы вложений потребует базового URL-адреса Как указать, когда функции были обновлены по отношению ко всей программе Показать пользовательские позиции таксономии WordPress, основанные на выбранном элементе из другой пользовательской таксономии Как загрузить мои действия раньше достаточно? Делает ли «show_option_all» в wp_list_categories что-нибудь?

Закажите get_terms несколькими meta_values

Я пытаюсь получить все условия пользовательской таксономии ( ediciones ), но упорядочивается двумя полями ACF: edicion_ano (поле года) и edicion_numero (поле чисел). Сначала нужно заказывать по годам и далее по номеру поля.

Я понимаю, что из ACF (5.5.X) можно использовать meta_query и я использую версию 5.5.14.

В новой версии ACF (5.5.x) теперь используется термин meta, а WP разрешает мета-запросы для терминов, поэтому эти обходы больше не нужны. ( источник )

Сейчас я использую этот код:

 $args = array( 'taxonomy' => 'ediciones', 'hide_empty' => false, 'meta_query' => array( 'relation' => 'AND', 'edicion_ano_param' => array( 'key' => 'edicion_ano', 'compare' => 'EXISTS', ), 'edicion_numero_param' => array( 'key' => 'edicion_numero', 'compare' => 'EXISTS', ), ), 'orderby' => array( 'edicion_ano_param' => 'DESC', 'edicion_numero_param' => 'DESC', ), ); $ediciones = get_terms($args); 

Используя тот же meta_query но с get_posts() он работает нормально. На самом деле с get_terms() показать мне предупреждение, но я не знаю почему: Предупреждение: strtolower () ожидает, что параметр 1 будет строкой, массив указан в … / class-wp-term-query.php в строке 824

Если я попробую заказать только одно поле, отлично работает с этим кодом:

 $args = array( 'taxonomy' => 'ediciones', 'hide_empty' => false, 'meta_key' => 'edicion_ano', 'orderby' => 'meta_value', 'order' => 'DESC', ); $ediciones = get_terms($args); 

Но мне нужен порядок по обоим полям. Любая идея, что я делаю неправильно или как это сделать, работает, как мне нужно?

Благодаря!

Это связано с тем, что get_terms() не принимает тип массива в качестве значения параметра «orderby». В документации говорится об этом параметре:

'Сортировать по'

(строка) Поле (ы), чтобы заказать условия. Принимает поля term ('name', 'slug', 'term_group', 'term_id', 'id', 'description'), 'count' для подсчета таксономии терминов, 'include' для соответствия 'order' of $ include param, 'meta_value', 'meta_value_num', значение $ meta_key, ключи массива $ meta_query или "none", чтобы опустить предложение ORDER BY. По умолчанию «имя».

Вы можете увидеть здесь оригинальную страницу документации