Posts List Table: check is_multi_author()
before attempting to set ->user_posts_count
. Also, don't show "Mine" when the count is the same as "All."
Fixes #19609. git-svn-id: https://develop.svn.wordpress.org/trunk@34584 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
706a62a134
commit
1d6c744604
@ -79,16 +79,19 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
|
||||
$post_type = $this->screen->post_type;
|
||||
$post_type_object = get_post_type_object( $post_type );
|
||||
$exclude_states = get_post_stati( array(
|
||||
'show_in_admin_all_list' => false,
|
||||
) );
|
||||
$this->user_posts_count = $wpdb->get_var( $wpdb->prepare( "
|
||||
SELECT COUNT( 1 )
|
||||
FROM $wpdb->posts
|
||||
WHERE post_type = %s
|
||||
AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' )
|
||||
AND post_author = %d
|
||||
", $post_type, get_current_user_id() ) );
|
||||
|
||||
if ( is_multi_author() ) {
|
||||
$exclude_states = get_post_stati( array(
|
||||
'show_in_admin_all_list' => false,
|
||||
) );
|
||||
$this->user_posts_count = $wpdb->get_var( $wpdb->prepare( "
|
||||
SELECT COUNT( 1 )
|
||||
FROM $wpdb->posts
|
||||
WHERE post_type = %s
|
||||
AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' )
|
||||
AND post_author = %d
|
||||
", $post_type, get_current_user_id() ) );
|
||||
}
|
||||
|
||||
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'] ) ) {
|
||||
$_GET['author'] = get_current_user_id();
|
||||
@ -260,13 +263,14 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
|
||||
$status_links = array();
|
||||
$num_posts = wp_count_posts( $post_type, 'readable' );
|
||||
$total_posts = array_sum( (array) $num_posts );
|
||||
$class = '';
|
||||
|
||||
$current_user_id = get_current_user_id();
|
||||
$all_args = array( 'post_type' => $post_type );
|
||||
$mine = '';
|
||||
|
||||
if ( $this->user_posts_count ) {
|
||||
if ( $this->user_posts_count && $this->user_posts_count !== $total_posts ) {
|
||||
if ( isset( $_GET['author'] ) && ( $_GET['author'] == $current_user_id ) ) {
|
||||
$class = 'current';
|
||||
}
|
||||
@ -292,8 +296,6 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
$total_posts = array_sum( (array) $num_posts );
|
||||
|
||||
// Subtract post types that are not included in the admin all list.
|
||||
foreach ( get_post_stati( array('show_in_admin_all_list' => false) ) as $state )
|
||||
$total_posts -= $num_posts->$state;
|
||||
|
Loading…
Reference in New Issue
Block a user