修改伪装的图像大小:使用“ADD_IMAGE_SIZE()”或“UPDATE_OPTION()”?

时间:2016-04-18 作者:Slam

我发现关于是否可以覆盖受保护的WordPress图像大小的信息存在冲突(thumbnail, medium, medium_large, and large) 具有add_image_size(). 一些文件指出,最好使用update_option (). 这些代码集之间是否存在实际差异:

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 );
}
注意:我在我的主题中指定这些是为了防止管理员随意改变大小和破坏4.4版后响应图像功能,我可能会删除管理员界面来更改图像大小。

1 个回复
SO网友:prosti

默认情况下,差别不大crop 设置为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,
    );
}
在评估过程中

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" );
            }
变量$_wp_additional_image_sizes 被考虑在内。除此之外,它非常简单,只有在未定义选项时,才会从选项表中读取选项。

也请note: 数据库wp_options 之前已读取表functions.php 已处理。