X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/53f4633144ed68c8b8fb5861f992b5489894a940..refs/tags/wordpress-4.4:/wp-admin/includes/class-wp-media-list-table.php diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php index 9c61fc28..3e0f41cf 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -1,13 +1,29 @@ is_trash = isset( $_REQUEST['attachment-filter'] ) && 'trash' == $_REQUEST['attachment-filter']; + $this->is_trash = isset( $_REQUEST['attachment-filter'] ) && 'trash' === $_REQUEST['attachment-filter']; $mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode']; @@ -69,43 +85,51 @@ class WP_Media_List_Table extends WP_List_Table { } /** - * - * @global wpdb $wpdb * @global array $post_mime_types * @global array $avail_post_mime_types * @return array */ protected function get_views() { - global $wpdb, $post_mime_types, $avail_post_mime_types; + global $post_mime_types, $avail_post_mime_types; $type_links = array(); - $_num_posts = (array) wp_count_attachments(); - $_total_posts = array_sum($_num_posts) - $_num_posts['trash']; - $total_orphans = $wpdb->get_var( "SELECT COUNT( * ) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent < 1" ); - $matches = wp_match_mime_types(array_keys($post_mime_types), array_keys($_num_posts)); - $num_posts = array(); - foreach ( $matches as $type => $reals ) { - foreach ( $reals as $real ) { - $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real]; - } - } - $selected = empty( $_GET['attachment-filter'] ) ? ' selected="selected"' : ''; - $type_links['all'] = "'; + + $filter = empty( $_GET['attachment-filter'] ) ? '' : $_GET['attachment-filter']; + + $type_links['all'] = sprintf( + '', + selected( $filter, true, false ), + __( 'All media items' ) + ); + foreach ( $post_mime_types as $mime_type => $label ) { - if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) ) + if ( ! wp_match_mime_types( $mime_type, $avail_post_mime_types ) ) { continue; + } - $selected = ''; - if ( !empty( $_GET['attachment-filter'] ) && strpos( $_GET['attachment-filter'], 'post_mime_type:' ) === 0 && wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $_GET['attachment-filter'] ) ) ) - $selected = ' selected="selected"'; - if ( !empty( $num_posts[$mime_type] ) ) - $type_links[$mime_type] = ''; + $selected = selected( + $filter && 0 === strpos( $filter, 'post_mime_type:' ) && + wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $filter ) ), + true, + false + ); + + $type_links[$mime_type] = sprintf( + '', + esc_attr( $mime_type ), + $selected, + $label[0] + ); + } + $type_links['detached'] = ''; + + if ( $this->is_trash || ( defined( 'MEDIA_TRASH') && MEDIA_TRASH ) ) { + $type_links['trash'] = sprintf( + '', + selected( 'trash' === $filter, true, false ), + __( 'Trash' ) + ); } - $type_links['detached'] = ''; - - if ( !empty($_num_posts['trash']) ) - $type_links['trash'] = ''; - return $type_links; } @@ -127,7 +151,7 @@ class WP_Media_List_Table extends WP_List_Table { } if ( $this->detached ) - $actions['attach'] = __( 'Attach to a post' ); + $actions['attach'] = __( 'Attach' ); return $actions; } @@ -148,7 +172,8 @@ class WP_Media_List_Table extends WP_List_Table { } /** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */ - do_action( 'restrict_manage_posts' ); + do_action( 'restrict_manage_posts', $this->screen->post_type ); + submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); } @@ -200,6 +225,8 @@ class WP_Media_List_Table extends WP_List_Table { global $mode; $views = $this->get_views(); + + $this->screen->render_screen_reader_content( 'heading_views' ); ?>
@@ -266,13 +293,13 @@ class WP_Media_List_Table extends WP_List_Table { $taxonomies = array_filter( $taxonomies, 'taxonomy_exists' ); foreach ( $taxonomies as $taxonomy ) { - if ( 'category' == $taxonomy ) + if ( 'category' === $taxonomy ) { $column_key = 'categories'; - elseif ( 'post_tag' == $taxonomy ) + } elseif ( 'post_tag' === $taxonomy ) { $column_key = 'tags'; - else + } else { $column_key = 'taxonomy-' . $taxonomy; - + } $posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name; } @@ -361,7 +388,13 @@ class WP_Media_List_Table extends WP_List_Table { -

guid ); ?>

+

+ + ID ); + echo wp_basename( $file ); + ?> +

post_date ) { + if ( '0000-00-00 00:00:00' === $post->post_date ) { $h_time = __( 'Unpublished' ); } else { $m_time = $post->post_date; @@ -447,8 +480,8 @@ class WP_Media_List_Table extends WP_List_Table { , -
+ } ?> +
'; - $pending_comments = get_pending_comments_num( $post->ID ); + if ( isset( $this->comment_pending_count[ $post->ID ] ) ) { + $pending_comments = $this->comment_pending_count[ $post->ID ]; + } else { + $pending_comments = get_pending_comments_num( $post->ID ); + } + $this->comments_bubble( $post->ID, $pending_comments ); echo '
'; @@ -496,9 +534,9 @@ class WP_Media_List_Table extends WP_List_Table { * @param string $column_name Current column name. */ public function column_default( $post, $column_name ) { - if ( 'categories' == $column_name ) { + if ( 'categories' === $column_name ) { $taxonomy = 'category'; - } elseif ( 'tags' == $column_name ) { + } elseif ( 'tags' === $column_name ) { $taxonomy = 'post_tag'; } elseif ( 0 === strpos( $column_name, 'taxonomy-' ) ) { $taxonomy = substr( $column_name, 9 ); @@ -547,14 +585,19 @@ class WP_Media_List_Table extends WP_List_Table { * @global WP_Post $post */ public function display_rows() { - global $post; + global $post, $wp_query; + + $post_ids = wp_list_pluck( $wp_query->posts, 'ID' ); + reset( $wp_query->posts ); + + $this->comment_pending_count = get_pending_comments_num( $post_ids ); add_filter( 'the_title','esc_html' ); while ( have_posts() ) : the_post(); if ( ( $this->is_trash && $post->post_status != 'trash' ) - || ( ! $this->is_trash && $post->post_status == 'trash' ) + || ( ! $this->is_trash && $post->post_status === 'trash' ) ) { continue; }