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?!

1 Comment

  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.