Get Current Category ID of an Archives/Category page in WordPress

Today I needed to grab the id of the current category on an archives page in a WordPress theme I am building. The reason for this is that I need to load the most recent post in a category outside of the main loop. I added the following code to functions.php:

// Get the current category id if we are on an archive/category page
function getCurrentCatID(){
	global $wp_query;
	if(is_category() || is_single()){
		$cat_ID = get_query_var('cat');
	return $cat_ID;

Thanks to Hyperspatial for the above code!

Then in my template, I used the “cat” argument of wp_query to build my query as follows:

// Get the current category id from the function we created in functions.php
$current_category_ID =  getCurrentCatID();
$args = array( 'numberposts' => 1, 'offset'=> 0, 'cat' => $current_category_ID );
// ...continue code...

Pretty neat, eh?!

Posted in ,

Toby Cryns

Toby Cryns is a freelance CTO, expert WordPress consultant, and teacher.

He offers free advice to improve your freelance biz.

He also publishes small droppings every now and then to and

Follow Toby's contributions on Github and


  1. Anthony Smith on July 14, 2011 at 1:44 am

    The category id should also be located in the $cat variable on the category page.