7

Is there any way to view your homepage in a preview mode, so that I can check how my posts will look on the homepage before publishing them (i.e. to make sure the featured image looks right etc).

6

I think you can set your post to private to view it privately on the homepage.

Once you change the visibility to private, the post or page status changes to "Privately Published" as shown. Private posts are automatically published but not visible to anyone but those with the appropriate permission levels (Editor or Administrator).

See here.


Here is one idea to view draft posts on the site:

Let's reuse the preview parameter to add the draft posts to the current page view, for example:

- example.com/?preview=true
- example.com/2014/01/?preview=true

We then modify all frontend queries, for logged in users, with:

add_filter( 'posts_where', function( $where ){
   if( ! is_admin() 
       && is_user_logged_in() 
       && 'true' === get_query_var( 'preview' ) 
       && ! is_singular() )
   {
        global $wpdb;
        $from = sprintf( "%s.post_status = 'publish'", $wpdb->posts ) ;
        if( current_user_can( 'edit_others_posts' ) )
        {
            // add drafts from all users:
            $to = sprintf( "%s.post_status IN ( 'publish', 'draft' ) ", $wpdb->posts ) ;
        }
        else
        {
            // add drafts from current user:
            $sql = " ( %s.post_status = 'publish' 
                       OR ( %s.post_status = 'draft'  AND %s.post_author = %d ) ) ";
            $to = sprintf( $sql, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           $wpdb->posts, 
                           get_current_user_id() 
                  );
        }
        $where  = str_ireplace( $from, $to, $where );       
   }
   return $where;
});

but we could use is_main_query() to restrict the modifications to the main query.

ps: this might need some testing or adjustments ... but you get the idea ;-)

  • Private! I like your idea. I was thinking about the code, and you trough a simple idea. – ucon89 Jan 16 '14 at 12:45
  • That's a smart and very nifty way to do it. +1 – kaiser Jan 21 '14 at 23:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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