If I create a post and set the visibility to "password protected", it still shows up on the front page and in the feeds. Is it possible to hide posts from general view altogether, but still allow quick access to some people without creating an account for them?

(This is in WP 3.0.4)

2 Answers 2


Both the the_content() and the the_excerpt() template tags already account for password-protected posts, via the post_password_required() conditional. If you need to output content, or comments, etc. outside of the_content()/the_excerpt(), call the post_password_required() conditional directly.

For example, if you don't want the comments template to be output if the post is password-protected. you could do the following:

if ( ! post_password_required() && ( is_single() || ( is_page() && comments_open() ) ) ) {          
    comments_template( '', true );

Or, if you don't want to display the post at all if it is password-protected, you could do something like this, inside the Loop:

if ( post_password_required() ) {
} else {
    // Normal Loop Post output goes here

My very simple solution is to put something like this in your loop:

<?php if( post_password_required() ) continue; ?>

This just skip the password protected entry.

  • 2
    This is going to screw up your pagination. Eg. if a password protected post is one of your, let's say, 10 on a given page, the page will only contain 9 posts. Dec 21, 2011 at 1:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.