Say that I want to make a post type called ‘press’ and it is mostly concerned with linking a title with a PDF document of a press clipping. I want to show all of these as an archive… so something like site.com/press but i don’t want any single post template pages. so no site.com/press/article1 or site.com/press/article2. other than not including a link in my archive template (which just obscures it but doesn’t negate their existence or prevent access to the single posts) how can i prevent a visitor from inadvertently accessing the single posts. how could i re-direct them back to the /press archive?
Leave a Reply
You must be logged in to post a comment.
The fast way
In your .htaccess add a rule
Plugin way
Hook into
template_redirect
and redirect all requests to a single entry:(Caveat: not tested)
An alternative to redirecting users would be to make it so this page isn’t generated to begin with. Setting your post type to
'public' => false, 'publicly_queryable' => true
will create a non-public post type. Then you can build a custom page template to act as the archive, with a custom query in the page template.See the
register_post_type
function for more info.