mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-22 16:21:26 +01:00
Correct the logic used when determining whether to display the 'Mine' link on post list tables. It should only be shown when the count for the user's posts differs for the total count of posts. is_multi_author()
cannot be used because it only considers Posts.
Fixes #19609 Built from https://develop.svn.wordpress.org/trunk@34667 git-svn-id: http://core.svn.wordpress.org/trunk@34631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
51667f882a
commit
2571b6dcec
@ -80,18 +80,16 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
$post_type = $this->screen->post_type;
|
||||
$post_type_object = get_post_type_object( $post_type );
|
||||
|
||||
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() ) );
|
||||
}
|
||||
$exclude_states = get_post_stati( array(
|
||||
'show_in_admin_all_list' => false,
|
||||
) );
|
||||
$this->user_posts_count = intval( $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();
|
||||
@ -270,6 +268,11 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
$all_args = array( 'post_type' => $post_type );
|
||||
$mine = '';
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
if ( $this->user_posts_count && $this->user_posts_count !== $total_posts ) {
|
||||
if ( isset( $_GET['author'] ) && ( $_GET['author'] == $current_user_id ) ) {
|
||||
$class = 'current';
|
||||
@ -296,10 +299,6 @@ class WP_Posts_List_Table extends WP_List_Table {
|
||||
$class = '';
|
||||
}
|
||||
|
||||
// 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;
|
||||
|
||||
if ( empty( $class ) && ( ( $this->is_base_request() && ! $this->user_posts_count ) || isset( $_REQUEST['all_posts'] ) ) ) {
|
||||
$class = 'current';
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '4.4-alpha-34666';
|
||||
$wp_version = '4.4-alpha-34667';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
Loading…
Reference in New Issue
Block a user