Question

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 :-)

Was it helpful?

Solution

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.

OTHER TIPS

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

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

Never mind :-)

$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.

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.

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!

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top