get_terms_orderbyхук-фильтрWP 2.8.0

Фильтруем часть SQL запроса отвечающую за колонку сортировки в функции get_terms(), get_categories(), wp_list_categories().

Использование

function filter_function_name_11( $orderby, $args, $taxonomies ) {
	// Фильтр...

	return $orderby;
}
add_filter( 'get_terms_orderby', 'filter_function_name_11' );
$orderby(строка)
Часть запроса, выглядит так при сортировке по колонке name: t.name или е.slug.
$args(массив)
Массив аргументов переданный в функцию get_terms().
$taxonomies(строка/массив)
Название таксономий переданных в get_terms()

Примеры

0

#1 Сортировка категорий

Предположим, что мы для сортировки категорий указывает в начало слага (альтернативного названия) каждой категории цифру. Теперь, если мы укажем параметр orderby=slug в функции get_terms(), то получим такую сортировку 1, 10, 2, 3..., а надо 1, 2, 3...9, 10. Чтобы это исправить можно изменить часть SQL запроса:

// устанавливаем фильтр
add_filter('get_terms_orderby', 'sort_terms_clause', 10, 3);
function sort_terms_clause( $orderby, $args, $taxonomies ){
	return 't.slug+0';
}

// получаем рубрики
$terms = get_terms('category', array('hide_empty=0') );
foreach( $terms as $term ){
	// выводим рубрики, здесь будет нужная нам сортировка
}

// удаляем фильтр
remove_filter('get_terms_orderby', 'sort_terms_clause', 10);

Список изменений

С версии 2.8.0 Введена.

Где вызывается хук

WP_Term_Query::parse_orderby()
get_terms_orderby
wp-includes/class-wp-term-query.php 957
$orderby = apply_filters( 'get_terms_orderby', $orderby, $this->query_vars, $this->query_vars['taxonomy'] );

Где используется хук в WordPress

Использование не найдено.