X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/af50974463450c98503e763a7836a50e260461a9..784f914b1e4b1c62d6657e86397c2e83bcee4295:/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 377e3c02..98deaac8 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -1,13 +1,33 @@ 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']; @@ -53,38 +84,59 @@ class WP_Media_List_Table extends WP_List_Table { ) ); } + /** + * @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)); - 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] = ''; - } - $type_links['detached'] = ''; + $selected = selected( + $filter && 0 === strpos( $filter, 'post_mime_type:' ) && + wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $filter ) ), + true, + false + ); - if ( !empty($_num_posts['trash']) ) - $type_links['trash'] = ''; + $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 ), + _x( 'Trash', 'attachment filter' ) + ); + } return $type_links; } + /** + * + * @return array + */ protected function get_bulk_actions() { $actions = array(); if ( MEDIA_TRASH ) { @@ -92,14 +144,14 @@ class WP_Media_List_Table extends WP_List_Table { $actions['untrash'] = __( 'Restore' ); $actions['delete'] = __( 'Delete Permanently' ); } else { - $actions['trash'] = __( 'Trash' ); + $actions['trash'] = _x( 'Trash', 'verb' ); } } else { $actions['delete'] = __( 'Delete Permanently' ); } if ( $this->detached ) - $actions['attach'] = __( 'Attach to a post' ); + $actions['attach'] = __( 'Attach' ); return $actions; } @@ -120,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' ) ); } @@ -131,44 +184,56 @@ class WP_Media_List_Table extends WP_List_Table { get_views(); + + $this->screen->render_screen_reader_content( 'heading_views' ); ?>