From cc30f8ad98c36534522b54393f14e00f963042f7 Mon Sep 17 00:00:00 2001 From: westi Date: Fri, 8 Jan 2010 08:51:12 +0000 Subject: [PATCH] Introduce a single function for getting all the intermediate image sizes to be used both when adding attachements and deleting. Fixes #10263 props scribu. git-svn-id: http://svn.automattic.com/wordpress/trunk@12659 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/image.php | 7 +------ wp-includes/media.php | 14 ++++++++++++++ wp-includes/post.php | 3 +-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php index cd88e4dc8..943b2d85b 100644 --- a/wp-admin/includes/image.php +++ b/wp-admin/includes/image.php @@ -102,13 +102,8 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) { // make thumbnails and other intermediate sizes global $_wp_additional_image_sizes; - $temp_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes - if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ) - $temp_sizes = array_merge( $temp_sizes, array_keys( $_wp_additional_image_sizes ) ); - $temp_sizes = apply_filters( 'intermediate_image_sizes', $temp_sizes ); - - foreach ( $temp_sizes as $s ) { + foreach ( get_intermediate_image_sizes() as $s ) { $sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => FALSE ); if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) $sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes diff --git a/wp-includes/media.php b/wp-includes/media.php index 318a6350f..a466d719c 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -506,6 +506,20 @@ function image_get_intermediate_size($post_id, $size='thumbnail') { return $data; } +/** + * Get the available image sizes + * @since 3.0 + * @return array Returns a filtered array of image size strings + */ +function get_intermediate_image_sizes() { + global $_wp_additional_image_sizes; + $image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes + if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ) + $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) ); + + return apply_filters( 'intermediate_image_sizes', $image_sizes ); +} + /** * Retrieve an image to represent an attachment. * diff --git a/wp-includes/post.php b/wp-includes/post.php index a2891a315..bb0ff0bab 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -2946,8 +2946,7 @@ function wp_delete_attachment( $post_id, $force_delete = false ) { } // remove intermediate and backup images if there are any - $sizes = apply_filters('intermediate_image_sizes', array('thumbnail', 'medium', 'large')); - foreach ( $sizes as $size ) { + foreach ( get_intermediate_image_sizes() as $size ) { if ( $intermediate = image_get_intermediate_size($post_id, $size) ) { $intermediate_file = apply_filters('wp_delete_file', $intermediate['path']); @ unlink( path_join($uploadpath['basedir'], $intermediate_file) );