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(
|
$settings = array(
|
||||||
'tabs' => $tabs,
|
'tabs' => $tabs,
|
||||||
'tabUrl' => add_query_arg( array( 'chromeless' => true ), admin_url('media-upload.php') ),
|
'tabUrl' => add_query_arg( array( 'chromeless' => true ), admin_url('media-upload.php') ),
|
||||||
|
@ -2719,8 +2709,8 @@ function wp_enqueue_media( $args = array() ) {
|
||||||
),
|
),
|
||||||
'defaultProps' => $props,
|
'defaultProps' => $props,
|
||||||
'attachmentCounts' => array(
|
'attachmentCounts' => array(
|
||||||
'audio' => $audio,
|
'audio' => wp_has_mime_type_attachments( 'audio' ) ? 1 : 0,
|
||||||
'video' => $video
|
'video' => wp_has_mime_type_attachments( 'video' ) ? 1 : 0
|
||||||
),
|
),
|
||||||
'embedExts' => $exts,
|
'embedExts' => $exts,
|
||||||
'embedMimes' => $ext_mimes,
|
'embedMimes' => $ext_mimes,
|
||||||
|
|
|
@ -2291,6 +2291,23 @@ function wp_count_attachments( $mime_type = '' ) {
|
||||||
return apply_filters( 'wp_count_attachments', (object) $counts, $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
|
* Get default post mime types
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue