WordPress.org

Make WordPress Core

Ticket #22556: 22556.patch

File 22556.patch, 2.7 KB (added by ocean90, 17 months ago)
  • wp-includes/query.php

     
    24842484                        foreach ( $statuswheres as $statuswhere ) 
    24852485                                $where .= " AND $statuswhere"; 
    24862486                } elseif ( !$this->is_singular ) { 
    2487                         $where .= " AND ($wpdb->posts.post_status = 'publish'"; 
     2487                        if ( in_array( 'attachment', (array) $post_type ) ) { 
     2488                                $where .= " AND ($wpdb->posts.post_status = 'inherit')"; 
     2489                        } else { 
     2490                                $where .= " AND ($wpdb->posts.post_status = 'publish'"; 
    24882491 
    2489                         // Add public states. 
    2490                         $public_states = get_post_stati( array('public' => true) ); 
    2491                         foreach ( (array) $public_states as $state ) { 
    2492                                 if ( 'publish' == $state ) // Publish is hard-coded above. 
    2493                                         continue; 
    2494                                 $where .= " OR $wpdb->posts.post_status = '$state'"; 
    2495                         } 
    2496  
    2497                         if ( $this->is_admin ) { 
    2498                                 // Add protected states that should show in the admin all list. 
    2499                                 $admin_all_states = get_post_stati( array('protected' => true, 'show_in_admin_all_list' => true) ); 
    2500                                 foreach ( (array) $admin_all_states as $state ) 
     2492                                // Add public states. 
     2493                                $public_states = get_post_stati( array('public' => true) ); 
     2494                                foreach ( (array) $public_states as $state ) { 
     2495                                        if ( 'publish' == $state ) // Publish is hard-coded above. 
     2496                                                continue; 
    25012497                                        $where .= " OR $wpdb->posts.post_status = '$state'"; 
    2502                         } 
     2498                                } 
    25032499 
    2504                         if ( is_user_logged_in() ) { 
    2505                                 // Add private states that are limited to viewing by the author of a post or someone who has caps to read private states. 
    2506                                 $private_states = get_post_stati( array('private' => true) ); 
    2507                                 foreach ( (array) $private_states as $state ) 
    2508                                         $where .= current_user_can( $read_private_cap ) ? " OR $wpdb->posts.post_status = '$state'" : " OR $wpdb->posts.post_author = $user_ID AND $wpdb->posts.post_status = '$state'"; 
     2500                                if ( $this->is_admin ) { 
     2501                                        // Add protected states that should show in the admin all list. 
     2502                                        $admin_all_states = get_post_stati( array('protected' => true, 'show_in_admin_all_list' => true) ); 
     2503                                        foreach ( (array) $admin_all_states as $state ) 
     2504                                                $where .= " OR $wpdb->posts.post_status = '$state'"; 
     2505                                } 
     2506 
     2507                                if ( is_user_logged_in() ) { 
     2508                                        // Add private states that are limited to viewing by the author of a post or someone who has caps to read private states. 
     2509                                        $private_states = get_post_stati( array('private' => true) ); 
     2510                                        foreach ( (array) $private_states as $state ) 
     2511                                                $where .= current_user_can( $read_private_cap ) ? " OR $wpdb->posts.post_status = '$state'" : " OR $wpdb->posts.post_author = $user_ID AND $wpdb->posts.post_status = '$state'"; 
     2512                                } 
     2513 
     2514                                $where .= ')'; 
    25092515                        } 
    2510  
    2511                         $where .= ')'; 
    25122516                } 
    25132517 
    25142518                if ( !empty( $this->meta_query->queries ) ) {