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.
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.
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.