I’m finding conflicting info on whether it’s okay to override protected WordPress image sizes (thumbnail, medium, medium_large, and large
) with add_image_size()
. Some docs indicate it’s better to do this with update_option ()
. Is there a practical difference between these sets of code:
function mytheme_image_sizes() {
add_image_size('thumbnail', 200, 200, true);
add_image_size('medium', 480, 480, true);
}
vs
function mytheme_image_sizes() {
update_option( 'thumbnail_size_w', 200 );
update_option( 'thumbnail_size_h', 200 );
update_option( 'thumbnail_crop', 1 );
update_option( 'medium_size_w', 480 );
update_option( 'medium_size_h', 480 );
update_option( 'medium_crop', 1 );
}
Note: I’m specifying these in my theme to stop admins from arbitrarily altering sizes and screwing up the post-4.4 responsive images function, and I’ll probably remove the admin interface to change the image sizes.
1 Answer
There is little difference, by default crop
is set to false
.
function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
global $_wp_additional_image_sizes;
$_wp_additional_image_sizes[ $name ] = array(
'width' => absint( $width ),
'height' => absint( $height ),
'crop' => $crop,
);
}
And also during the process of evaluation
if ( isset( $_wp_additional_image_sizes[ $size ] ) ) {
$width = intval( $_wp_additional_image_sizes[ $size ]['width'] );
$height = intval( $_wp_additional_image_sizes[ $size ]['height'] );
$crop = ( $nocrop ) ? false : $_wp_additional_image_sizes[ $size ]['crop'];
} else {
$height = get_option( "{$size}_size_h" );
$width = get_option( "{$size}_size_w" );
$crop = ( $nocrop ) ? false : get_option( "{$size}_crop" );
}
variable $_wp_additional_image_sizes
is took in consideration. Other then that it is very simple, options will be read from options table only if not defined.
Also please note: the database wp_options
table is read before functions.php
has been processed.