I want to get the current category details that the user is on in category.php.

$category = get_the_category();
$slug  = $category[0]->slug; // Why is this an array ?

In most cases (where there are no sub-categories) it returns and array of single length.

But if there are sub-categories it (parent category and ) returns an array of 2 or more.

http://domain.com/category/cat-name/ -> get_the_category() returns an array of 2
http://domain.com/category/cat-name/sub-cat-name/ -> get_the_category() returns an array of 2
  • You seem to be getting categories. What is the question?
    – s_ha_dum
    Commented Dec 11, 2012 at 15:21
  • I want the current category the page is on at category.php. For categories that have sub-categories, I'm getting an array of categories - how can I make out which is the current category ?
    – EPQRS
    Commented Dec 11, 2012 at 16:54

3 Answers 3


You are using the wrong function. Try:

$thiscat = $wp_query->get_queried_object();

I don't know exactly what you want to do with this information but you will get an object (stdClass) with ~15 items in it. You should be able to find what you need.


I've also got it from the following :

$cur_cat_id = get_cat_id(single_cat_title("",false));
$category = get_category($cur_cat_id);

But I guess s-ha-dum's solutions is better.


I normally use the following to retrieve the category ID of the current category archive:

$cat_id = get_query_var('cat')

to get the details, you can use:

$cat = get_category( $cat_id )


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.