Change default ordering of taxonomy terms – pre_get_terms

I wanted to change the default taxonomy terms order by its ‘term_order’ value instead of ‘name’ in admin side. So I tried something like below. But it doesn’t work and php memory exhaust.

function uc_order_term( $wp_query ) {
    $wp_query->query(
        array(
            'taxonomy' => 'category',
            'orderby' => 'term_order',
            'order' => 'ASC'
        )
    );
}
add_action( 'pre_get_terms', 'uc_order_term');

However in similar way I tried to sort posts by menu_order and it works.

function uc_order_post( $wp_query ) {

            $wp_query->set('orderby', 'menu_order');
            $wp_query->set('order', 'ASC');

}
add_action( 'pre_get_posts', 'uc_order_post', 1 );

enter image description here

2 Answers
2

Now I am able to sort taxonomy terms by term_order using below snippets. But I am still seeking answer for the original question “How to do it using pre_get_terms”.

function foo_tax_order($orderby, $args){

        return 't.term_order';
}
add_filter('get_terms_orderby', 'foo_tax_order', 10, 2);

Leave a Comment