I am using wp_list_categories
to display all terms of my custom taxonomy 'categories'.
The function is outputting all my terms successfully but the current category is not being highlighted, even though 'current_category'
is set to 1
in my arguments.
The function is being outputted on taxonomy-categories.php
, following the naming convention of my taxonomy categories
.
It is not inside a loop, could that be why?
UPDATE, here is my function:
$args = array(
'orderby' => 'term_group',
'title_li' => NULL,
'order' => 'ASC',
'hide_empty' => 1,
'use_desc_for_title' => 0,
'feed' => '',
'hierarchical' => 1,
'echo' => 1,
'current_category' => 1,
'taxonomy' => 'categories'
);
echo wp_list_categories($args);
Note: this works on my single-{post-type}.php
template, but does not function on my taxonomy-{taxonomy}.php
template.
This will add a
current-cat
class to any / all categories connected to the post, not jut one.Add this to
functions.php
The answer provided by Howdy_McGee produced a PHP notice for me that prevented it from working correctly. I changed
$terms = get_the_terms( $post->ID, $args['taxonomy'] );
to$terms = get_the_terms( $post->ID, 'taxonomy' );
I also added a check that the post has terms associated with it to suppress additional PHP warnings if$terms
is empty.Actually this functionality is already build in the
wp_list_categories
function.Just use the
current_category
like this:Full example: