Avoid an expensive attachment counting query on the post editing screen. See #27985, for trunk.
Built from https://develop.svn.wordpress.org/trunk@28191 git-svn-id: http://core.svn.wordpress.org/trunk@28021 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
7b4d339454
commit
d6e03df3c9
|
@ -2695,16 +2695,6 @@ function wp_enqueue_media( $args = array() ) {
|
|||
}
|
||||
}
|
||||
|
||||
$audio = $video = 0;
|
||||
$counts = (array) wp_count_attachments();
|
||||
foreach ( $counts as $mime => $total ) {
|
||||
if ( 0 === strpos( $mime, 'audio/' ) ) {
|
||||
$audio += (int) $total;
|
||||
} elseif ( 0 === strpos( $mime, 'video/' ) ) {
|
||||
$video += (int) $total;
|
||||
}
|
||||
}
|
||||
|
||||
$settings = array(
|
||||
'tabs' => $tabs,
|
||||
'tabUrl' => add_query_arg( array( 'chromeless' => true ), admin_url('media-upload.php') ),
|
||||
|
@ -2719,8 +2709,8 @@ function wp_enqueue_media( $args = array() ) {
|
|||
),
|
||||
'defaultProps' => $props,
|
||||
'attachmentCounts' => array(
|
||||
'audio' => $audio,
|
||||
'video' => $video
|
||||
'audio' => wp_has_mime_type_attachments( 'audio' ) ? 1 : 0,
|
||||
'video' => wp_has_mime_type_attachments( 'video' ) ? 1 : 0
|
||||
),
|
||||
'embedExts' => $exts,
|
||||
'embedMimes' => $ext_mimes,
|
||||
|
|
|
@ -2291,6 +2291,23 @@ function wp_count_attachments( $mime_type = '' ) {
|
|||
return apply_filters( 'wp_count_attachments', (object) $counts, $mime_type );
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if at least one attachment of a particular mime-type has been uploaded
|
||||
*
|
||||
* @global wpdb $wpdb
|
||||
*
|
||||
* @since 3.9.1
|
||||
*
|
||||
* @param string $mime_type The mime-type string to check.
|
||||
*
|
||||
* @return int|null If exist, the post ID of the first found attachment.
|
||||
*/
|
||||
function wp_has_mime_type_attachments( $mime_type ) {
|
||||
global $wpdb;
|
||||
$sql = sprintf( "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment' AND post_mime_type LIKE '%s%%' LIMIT 1", like_escape( $mime_type ) );
|
||||
return $wpdb->get_var( $sql );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get default post mime types
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue