Sarathlal N

Disable single page view & archive page view of Custom Post Type - WordPress

As a WordPress developer, often I have to use Custom Post Types in my plugins & theme.

I believe that you already have an idea about Custom Post Types. The Custom Post Type functionality help us to create & display custom type content in simple steps.

In most situations, I don’t need a single page view / archive view for my custom post type. But I didn’t care about that pages untill last time I noticed that these unnecessary pages are indexed in search engine results & it start to ruin my SEO ranking.

So now I believe that hiding unnecessary pages is an important act.

Disable single page view & archive page view

If you don’t need both, it is better to optimize our custom post type registration code.

'labels' => array(
	'name' => _x('Sample Posts', 'post type general name'),
	'singular_name' => _x('Sample Post', 'post type singular name')
'public' => true,
'exclude_from_search' => true,
'show_in_admin_bar'   => false,
'show_in_nav_menus'   => false,
'publicly_queryable'  => false,
'query_var'           => false

The publicly_queryable argument & its false value will hide all single pages & archive pages of this post type.

Disable single page view & Show archive pages

add_action( 'template_redirect', 'wpse_45164_redirect_press' );
function wpse_45164_redirect_press()
	if ( ! is_singular( 'press' ) )

	wp_redirect( get_post_type_archive_link( 'press' ), 301 );

The above code will redirect all single page view of press post type in to its post type archive page.

Recent Posts

  1. Action hooks that trigger on, before or after add, update or delete actions of option - WordPress
  2. Get all variations of a variable product - WooCommerce
  3. Generate random string - Python
  4. Split domain from an email address - Python
  5. Get upcoming N days - PHP

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.