How to redirect to single post page if there is one post in category/tag

Archive indexes are a good way to organize your posts, but if there is only one post in an archive page it can be just a waste of time. Here i will give you a small #snippet to jump directly to the post page.

To achieve this we will use wp_redirect which is a great feature for contexual template redirections.

Here is the code to put in your functions.php file to jump single post archives :

function stf_redirect_to_post(){
	global $wp_query;

	// If there is one post on archive page
	if( is_archive() && $wp_query->post_count == 1 ){
		// Setup post data
		// Get permalink
		$post_url = get_permalink();
		// Redirect to post page
		wp_redirect( $post_url );

} add_action('template_redirect', 'stf_redirect_to_post');

This redirection check will fast forward user to the post page if there is only one post in that category/tag.

Thanks to Julie for the idea.

  • Jan Kaczmarek Mar 27, 2012

    Fanatastic! Thanks a lot! I was looking for this.

    Do you know if this is creates 301 redirects?

  • Jan Oct 26, 2011

    I don’t see the date of this article, am I blind? Can I just drop here a line to mention, that such time sensitive subjects need to give a reader some idea, when was it written. But anyway, thanks for sharing, this is exactly my case.


Free Newsletter

Subscribe to our newsletter for awesome tips about Wordpress and Web Design
* = required field

powered by MailChimp!

Keywords Sponsorship

Powered by WordPress and Shailan