function wp_count_attachments( $mime_type = ''
) { global $wpdb;
$cache_key =
sprintf( 'attachments%s',
!
empty( $mime_type ) ? ':' .
str_replace( '/', '_',
implode( '-',
(array) $mime_type ) ) : ''
);
$counts =
wp_cache_get( $cache_key, 'counts'
);
if ( false ==
$counts ) { $and =
wp_post_mime_type_where( $mime_type );
$count =
$wpdb->
get_results( "SELECT post_mime_type, COUNT( * ) AS num_posts FROM
$wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash'
$and GROUP BY post_mime_type", ARRAY_A
);
$counts = array
();
foreach ( (array) $count as $row ) { $counts[ $row['post_mime_type'
] ] =
$row['num_posts'
];
} $counts['trash'
] =
$wpdb->
get_var( "SELECT COUNT( * ) FROM
$wpdb->posts WHERE post_type = 'attachment' AND post_status = 'trash'
$and"
);
wp_cache_set( $cache_key,
(object) $counts, 'counts'
);
}