Plugin Directory

Private Page Forbidden

Author: Weston Ruter

This plugin is developed at Shepherd Interactive for the benefit of the community. No support is available. Please post any questions to the support forum.

Instead of serving a 404 Not Found error with the 404.php template, send a 403 Forbidden error and set $wp_query->is_403 and load 403.php if it exists.

Provides a filter forbidden_redirect which if results in a non-empty filtered value will result in the user being redirected if attempting to visit a forbidden page; the default value is "" (no redirect).

Useful with a filter which selectively prevents a private post from being forbidden, so that the page will not show up in the navigation and won't be included in XML Sitemaps, for example.

function my_filter_private_posts($posts){
    if(is_singular() && $posts[0]->post_status == 'private'
       && #Now optionally allow/disallow based on user session:
       in_array($_SERVER['REQUEST_URI'], (array)@$_SESSION['allowed_private_uris']))
    ){
        header('Cache-Control: private'); #Prevent proxies from caching this private page
        $posts[0]->post_status = 'publish';
    }
    return $posts;
}
add_filter('posts_results', 'my_filter_private_posts');

Download

FYI

Compatibility beta

Your Setup

Log in to vote.

The Consensus

No data

Average Rating

5 stars
4 stars
3 stars
2 stars
1 star
(0 ratings)