WordPress.org

Make WordPress Core

Ticket #19609: 19609.diff

File 19609.diff, 2.6 KB (added by wonderboymusic, 6 years ago)
  • src/wp-admin/includes/class-wp-posts-list-table.php

     
    8080                $post_type = $this->screen->post_type;
    8181                $post_type_object = get_post_type_object( $post_type );
    8282
    83                 if ( !current_user_can( $post_type_object->cap->edit_others_posts ) ) {
    84                         $exclude_states = get_post_stati( array( 'show_in_admin_all_list' => false ) );
    85                         $this->user_posts_count = $wpdb->get_var( $wpdb->prepare( "
    86                                 SELECT COUNT( 1 ) FROM $wpdb->posts
    87                                 WHERE post_type = %s AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' )
    88                                 AND post_author = %d
    89                         ", $post_type, get_current_user_id() ) );
     83                $exclude_states = get_post_stati( array( 'show_in_admin_all_list' => false ) );
     84                $this->user_posts_count = $wpdb->get_var( $wpdb->prepare( "
     85                        SELECT COUNT( 1 ) FROM $wpdb->posts
     86                        WHERE post_type = %s AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' )
     87                        AND post_author = %d
     88                ", $post_type, get_current_user_id() ) );
    9089
    91                         if ( $this->user_posts_count && empty( $_REQUEST['post_status'] ) && empty( $_REQUEST['all_posts'] ) && empty( $_REQUEST['author'] ) && empty( $_REQUEST['show_sticky'] ) )
    92                                 $_GET['author'] = get_current_user_id();
     90                if ( $this->user_posts_count && ! current_user_can( $post_type_object->cap->edit_others_posts ) && empty( $_REQUEST['post_status'] ) && empty( $_REQUEST['all_posts'] ) && empty( $_REQUEST['author'] ) && empty( $_REQUEST['show_sticky'] ) ) {
     91                        $_GET['author'] = get_current_user_id();
    9392                }
    9493
    9594                if ( 'post' == $post_type && $sticky_posts = get_option( 'sticky_posts' ) ) {
     
    241240
    242241                $current_user_id = get_current_user_id();
    243242                $all_args = array( 'post_type' => $post_type );
     243                $mine = '';
    244244
    245245                if ( $this->user_posts_count ) {
    246246                        if ( isset( $_GET['author'] ) && ( $_GET['author'] == $current_user_id ) ) {
     
    262262                                number_format_i18n( $this->user_posts_count )
    263263                        );
    264264
    265                         $status_links['mine'] = $this->get_edit_link( $mine_args, $mine_inner_html, $class );
     265                        $mine = $this->get_edit_link( $mine_args, $mine_inner_html, $class );
    266266
    267267                        $all_args['all_posts'] = 1;
    268268                        $class = '';
     
    289289                );
    290290
    291291                $status_links['all'] = $this->get_edit_link( $all_args, $all_inner_html, $class );
     292                if ( $mine ) {
     293                        $status_links['mine'] = $mine;
     294                }
    292295
    293296                foreach ( get_post_stati(array('show_in_admin_status_list' => true), 'objects') as $status ) {
    294297                        $class = '';