[wp-hackers] add_image_size() possible to restrict to just one size?..

Patrik Bóna patrik.bona at mrhead.sk
Sun Sep 5 10:44:47 UTC 2010

Hi Davit,

You can use wp_generate_attachment_metadata filter. I use it for 
generating own image sizes for different post types. This is example for 
post type galeria (gallery):

function gallery_upload($metadata, $attachment_id) {
	$post_id = $_POST['post_id'];

	// if it is not 'galeria' just return metadata
	if(get_post_type($post_id) != 'galeria')
		return $metadata;

	// otherwise create custom image sizes
	$upload_dir = wp_upload_dir();
	$file = image_resize($upload_dir['basedir'] . '/' . $metadata['file'], 100, 100, true, 'thumb');
	$metadata['sizes']['thumbnail'] = array('file' =>  basename($file), 'width' =>  100, 'height' =>  100);
	return $metadata;
add_filter('wp_generate_attachment_metadata', 'gallery_upload', 10, 2);

So i don't use add_image_size (in this case) because it apply to 
everything. Disadvantage of this solution is that these sizes are not 
deleted automatically when you delete attachment, but you can again use 
filters/actions... ;)


On 09/05/2010 12:17 PM, Davit Barbakadze wrote:
> In my understanding now, whenever I add new size, wordpress just
> automatically creates it on every upload. That is if I got five
> different size, for post thumbnails, for sidebar widgets, avatars,
> custom category headers, etc - they all get created on every upload.
> Is it so? If for example if I upload an image for an avatar, do the
> post thumbnail size, and sidebar widget size and category header size
> get created too? If yes, can I prevent it, and restrict maybe to only
> an avatar size for that particular case?

More information about the wp-hackers mailing list