WordPress.org

Make WordPress Core

Ticket #9180: posts.9180.diff

File posts.9180.diff, 2.1 KB (added by filosofo, 9 years ago)
  • wp-includes/query.php

     
    22622262                // Check post status to determine if post should be displayed.
    22632263                if ( !empty($this->posts) && ($this->is_single || $this->is_page) ) {
    22642264                        $status = get_post_status($this->posts[0]);
    2265                         //$type = get_post_type($this->posts[0]);
    22662265                        if ( ('publish' != $status) ) {
    2267                                 if ( ! is_user_logged_in() ) {
    2268                                         // User must be logged in to view unpublished posts.
    2269                                         $this->posts = array();
    2270                                 } else {
    2271                                         if  (in_array($status, array('draft', 'pending')) ) {
    2272                                                 // User must have edit permissions on the draft to preview.
    2273                                                 if (! current_user_can('edit_post', $this->posts[0]->ID)) {
    2274                                                         $this->posts = array();
    2275                                                 } else {
    2276                                                         $this->is_preview = true;
    2277                                                         $this->posts[0]->post_date = current_time('mysql');
    2278                                                 }
    2279                                         }  else if ('future' == $status) {
    2280                                                 $this->is_preview = true;
    2281                                                 if (!current_user_can('edit_post', $this->posts[0]->ID)) {
    2282                                                         $this->posts = array ( );
    2283                                                 }
     2266                                if  (in_array($status, array('draft', 'pending')) ) {
     2267                                        // User must have edit permissions on the draft to preview.
     2268                                        if (! current_user_can('edit_post', $this->posts[0]->ID)) {
     2269                                                $this->posts = array();
    22842270                                        } else {
    2285                                                 if (! current_user_can('read_post', $this->posts[0]->ID))
    2286                                                         $this->posts = array();
     2271                                                $this->is_preview = true;
     2272                                                $this->posts[0]->post_date = current_time('mysql');
    22872273                                        }
     2274                                }  else if ('future' == $status) {
     2275                                        $this->is_preview = true;
     2276                                        if (!current_user_can('edit_post', $this->posts[0]->ID))
     2277                                                $this->posts = array();
     2278                                } else {
     2279                                        if (! current_user_can('read_post', $this->posts[0]->ID))
     2280                                                $this->posts = array();
    22882281                                }
    22892282                        }
    22902283
    2291                         if ( $this->is_preview && current_user_can( "edit_{$post_type}", $this->posts[0]->ID ) )
     2284                        if ( $this->is_preview && isset( $this->posts[0] ) && current_user_can( "edit_{$post_type}", $this->posts[0]->ID ) )
    22922285                                $this->posts[0] = apply_filters('the_preview', $this->posts[0]);
    22932286                }
    22942287