remove_image_size( string $name ): bool

Removes a new image size.


The image size to remove.


bool True if the image size was successfully removed, false on failure.

More Information

  • Useful when a plugin has registered an image size and you want to use the same image name in your theme but with a different size.
  • Cannot be used on reserved image size names.


function remove_image_size( $name ) {
	global $_wp_additional_image_sizes;

	if ( isset( $_wp_additional_image_sizes[ $name ] ) ) {
		unset( $_wp_additional_image_sizes[ $name ] );
		return true;

	return false;



User Contributed Notes

  1. Skip to note 5 content

    To remove all the image sizes keeping only the default WordPress image sizes –

    function remove_extra_image_sizes() {
        foreach ( get_intermediate_image_sizes() as $size ) {
            if ( !in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
                remove_image_size( $size );
    add_action('init', 'remove_extra_image_sizes');
  2. Skip to note 6 content

    Another common case is when your (parent) theme, or a plugin creates image sizes that you will never use.
    Deregistering unwanted sizes will prevent WordPress from generating and storing images you won’t use.
    This will save disk space, and associated costs.

    Of course, it only affects future image uploads.
    Plugins that “regenerate thumbnails” can be used to delete existing thumbnails that are not currently registered, while creating any missing sizes.

    The article mentions that you cannot use this function on reserved image size names.
    However there are a few work arounds:

    • In the WordPress Settings, you can set the image size to 0px.
    • You can try the `intermediate_image_sizes_advanced` function.
    • You can put the following code in your functions.php file:
      update_option( 'thumbnail_size_h', 0 );
      update_option( 'thumbnail_size_w', 0 );
      update_option( 'medium_size_h', 0 );
      update_option( 'medium_size_w', 0 );
      update_option( 'large_size_h', 0 );
      update_option( 'large_size_w', 0 );
  3. Skip to note 7 content


    In a theme’s functions.php file:

    function wpdocs_remove_plugin_image_sizes() {
    	remove_image_size( 'image-name' );
    add_action('init', 'wpdocs_remove_plugin_image_sizes');

    You could combine this with the add_image_size function in your theme.

    function wpdocs_remove_then_add_image_sizes() {
    	remove_image_size( 'image-name' );
    	add_image_size( 'image-name', 200, 200, true );
    add_action('init', 'wpdocs_remove_then_add_image_sizes');
  4. Skip to note 8 content

    To replace any of the default image sizes like ‘medium’, ‘large’, etc you must remove first and then add with new attributes.

     * Add crop attribute to 'medium' WordPress default image size
    add_action( 'init', 'wpdocs_change_medium_image_size' );
    function wpdocs_change_medium_image_size() {
        remove_image_size( 'medium' );
        add_image_size( 'medium', 300, 300, true );

You must log in before being able to contribute a note or feedback.