7

Right, hopefully a nice and simple one... I'm on a category page with the id of 4, I want to get the category object back so I can interogate a few values.

I've had a good old look in the WP codex with little success, remember I don't want to get the categories from a post, I want the category object from the current category.

Many thanks, Ben :-)

1
  • 1
    You should vote up Fernandos answer and check it as the sollution
    – kaiser
    Commented Jan 25, 2011 at 16:36

5 Answers 5

5

To get the category object use get_category (codex). It's easy if you know the name, slug or ID, but if you don't you could use is_category to check on which category you are and pass the ID to get_category.

2
  • 3
    This doesn't actually make sense. In fact, this is the only response that ISN'T a correct answer. The OP wanted a way to get the cat object. is_category doesn't "check on which category you are" - it tells you IF you're on a category page. If you have the ID, then yeah you can use get_category(), but I'm assuming here that the OP was using ID=4 as an arbitrary example, but actually wouldn't know beforehand the ID of the cat he wanted to query.
    – Tom Auger
    Commented Jun 2, 2011 at 0:02
  • This isn't a correct answer...! As you wrot Tom.
    – jepser
    Commented May 22, 2012 at 18:41
15

Damn, so I did find the answer I was looking for:

$thisCat = get_category(get_query_var('cat'),false);

Never mind :-)

1
  • 1
    This should be the accepted answer!
    – aletede91
    Commented Mar 2, 2017 at 11:54
7

$wp_query->get_queried_object() is a very versatile function. It will return the current category, tag, custom taxonomy term, author, page or post, depending on the page/archive you are viewing. Especially handy if you want to simplify your archive headings.

4

I'd personally get into a habit of calling get_term or get_terms, as the category functions are only wrapper functions that in turn call get_term(s) anyway.

<?php 
$queried_category = get_term( get_query_var('cat'), 'category' ); 

// echo $queried_category->term_id; // The category ID
// echo $queried_category->slug; // The category slug
// echo $queried_category->name; // The category name 
// echo $queried_category->description; // The category description 
?> 

Familiaring yourself with the term functions will make dealing with custom taxonomies a little easier, because you'll be calling on these functions in such cases.

http://codex.wordpress.org/Function_Reference/get_term
http://codex.wordpress.org/Function_Reference/get_terms

And a function that i don't see used a great deal, but can be really handy.
http://codex.wordpress.org/Function_Reference/get_term_by
Which provides a means of fetching a term object based on name, slug or ID.

1

An interesting case wherein one of many category archive pages included in a custom menu returned an empty array for

get_the_category();

required me to run through all the different ways to skin a cat (no pun intended).

is_category() RETURNS true
get_the_category() RETURNS an empty array
the_category() RETURNS NULL

The final answer ended up being Ben Everard's

 get_category(get_query_var('cat'), false) RETURNS the correct WPCategory object

Thanks!

1
  • 1
    actually, @JanFabry's answer is the one here which should be marked "correct" - get_queried_object(), much simpler, and the preferred method.
    – Milo
    Commented Jan 14, 2013 at 19:38

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