最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to list categories in reverse alphabetical order?

programmeradmin1浏览0评论

I am organising posts on a blog-type website into "issues", each containing 10 articles and assigned a unique category such as issue7.

Using a sidebar widget I want to list these categories so that a user can click on "Issue 7" and they will bring up all the articles in category issue7, namely articles 61-70.

It's straightforward to list them in alphabetical order of the category names. But how can I list them in reverse alphabetical order of those names, such that the link "Issue 3" (for category issue3) appears before "Issue 2" and the link to the latest "issue" appears at the top?

I'm using Astra with a child theme. I've tried putting the following into functions.php in the child theme, but to no effect:

$categories = get_terms( 'category', array(
'orderby'    => 'name',
'order'      => 'DESC',
'hide_empty' => 0
) );

(I realise that once I go over Issue 9 I will probably have to rename category issue1 as issue01.)

I am organising posts on a blog-type website into "issues", each containing 10 articles and assigned a unique category such as issue7.

Using a sidebar widget I want to list these categories so that a user can click on "Issue 7" and they will bring up all the articles in category issue7, namely articles 61-70.

It's straightforward to list them in alphabetical order of the category names. But how can I list them in reverse alphabetical order of those names, such that the link "Issue 3" (for category issue3) appears before "Issue 2" and the link to the latest "issue" appears at the top?

I'm using Astra with a child theme. I've tried putting the following into functions.php in the child theme, but to no effect:

$categories = get_terms( 'category', array(
'orderby'    => 'name',
'order'      => 'DESC',
'hide_empty' => 0
) );

(I realise that once I go over Issue 9 I will probably have to rename category issue1 as issue01.)

Share Improve this question edited Jun 7, 2019 at 11:57 asked Jun 7, 2019 at 11:50 user169591user169591
Add a comment  | 

1 Answer 1

Reset to default 1

Redefine arguments for 'category' taxonomy ONLY:

add_filter( 'get_terms_args', 'my_term_args', 10, 2 );

function my_term_args( $args, $taxonomies ) {
    // don't affect admin area passing back default arguments
    if ( is_admin() ) {
        return $args;
    }

    // check the taxonomy in use and redefine it's default arguments
    if( in_array( 'category', $taxonomies ) ) {
        $args['orderby']    = 'name';
        $args['order']      = 'DESC';
        $args['hide_empty'] = false;
    }

    return $args;
}

Also, get_terms() syntax you've posted is obsolete since version 4.5. The new syntax look like this:

<?php
$categories = get_terms( array(
    'taxonomy'   => 'category'
    'orderby'    => 'name',
    'order'      => 'DESC',
    'hide_empty' => false
) );
发布评论

评论列表(0)

  1. 暂无评论