Add remove_image_size() and tests for it and has_image_size(), added in [27128].

props mordauk, markoheijnen.
fixes #26768. see #26951.


git-svn-id: https://develop.svn.wordpress.org/trunk@27129 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Nacin 2014-02-08 00:40:15 +00:00
parent d80685a46b
commit baeadcfedc
2 changed files with 64 additions and 5 deletions

View File

@ -181,27 +181,55 @@ function image_downsize($id, $size = 'medium') {
} }
/** /**
* Registers a new image size * Register a new image size.
* *
* @since 2.9.0 * @since 2.9.0
*
* @param string $name The image size name.
* @param int $width The image's width.
* @param int $height The image's width.
* @param bool $width Whether to crop the image to fit the dimensions. Default false.
*/ */
function add_image_size( $name, $width = 0, $height = 0, $crop = false ) { function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
global $_wp_additional_image_sizes; global $_wp_additional_image_sizes;
$_wp_additional_image_sizes[$name] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => (bool) $crop ); $_wp_additional_image_sizes[ $name ] = array(
'width' => absint( $width ),
'height' => absint( $height ),
'crop' => (bool) $crop,
);
} }
/** /**
* Check if an image size exists * Check if an image size exists.
* *
* @since 3.9.0 * @since 3.9.0
* *
* @param string $name The image size name. * @param string $name The image size to check.
* @return bool True if it exists, false if not. * @return bool True if it exists, false if not.
*/ */
function has_image_size( $name = '' ) { function has_image_size( $name = '' ) {
global $_wp_additional_image_sizes; global $_wp_additional_image_sizes;
return isset( $_wp_additional_image_sizes[$name] ); return isset( $_wp_additional_image_sizes[ $name ] );
}
/**
* Remove a new image size.
*
* @since 3.9.0
*
* @param string $name The image size to remove.
* @return bool True on success, false on failure.
*/
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;
} }
/** /**

View File

@ -406,4 +406,35 @@ VIDEO;
$this->assertEquals( $expected, $content ); $this->assertEquals( $expected, $content );
} }
/**
* @ticket 26768
*/
function test_add_image_size() {
global $_wp_additional_image_sizes;
$this->assertArrayNotHasKey( 'test-size', $_wp_additional_image_sizes );
add_image_size( 'test-size', 200, 600 );
$this->assertArrayHasKey( 'test-size', $_wp_additional_image_sizes );
$this->assertEquals( 200, $_wp_additional_image_sizes['test-size']['width'] );
$this->assertEquals( 600, $_wp_additional_image_sizes['test-size']['height'] );
}
/**
* @ticket 26768
*/
function test_remove_image_size() {
add_image_size( 'test-size', 200, 600 );
$this->assertTrue( has_image_size( 'test-size' ) );
remove_image_size( 'test-size' );
$this->assertFalse( has_image_size( 'test-size' ) );
}
/**
* @ticket 26951
*/
function test_has_image_size() {
add_image_size( 'test-size', 200, 600 );
$this->assertTrue( has_image_size( 'test-size' ) );
}
} }