function wp_count_attachments( $mime_type = '' ) {}

Count number of attachments for the mime type(s).
If you set the optional mime_type parameter, then an array will still be returned, but will only have the item you are looking for. It does not give you the number of attachments that are children of a post. You can get that by counting the number of children that post has.


  • string|array $mime_type: Optional. Array or comma-separated list of MIME patterns.

Return values

returns:Number of posts for each mime type.

Source code

function wp_count_attachments( $mime_type = '' ) {

	global $wpdb;

	$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 );

	$stats = array( );

	foreach( (array) $count as $row ) {

		$stats[$row['post_mime_type']] = $row['num_posts'];


	$stats['trash'] = $wpdb->get_var( "SELECT COUNT( * ) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status = 'trash' $and");

	return (object) $stats;



No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: