我买了一个WP主题,它在他的主题函数中定义了自定义图像大小。php如下所示:
if ( function_exists( \'add_image_size\' ) ){
add_image_size( \'tie-small\', 70, 70, true );
}
如您所见,第三个参数为true,这将导致硬裁剪模式(请参见
Wordpress Documentation for add_image_size). 这个模式没有考虑比例,所以我的一些缩略图的大小调整得非常糟糕。我做了一些测试,将裁剪参数更改为FALSE将产生更好的结果。
我想通过使用插件覆盖此图像大小,这样我就可以更新我的主题,而不会在每次更新时将上面的值更改为FALSE。add\\u image\\u size函数将其数据存储在以$name为键的数组中。因此,此函数的多重调用将覆盖上一次调用之前的值。
我的插件非常简单,如下所示:
class My_Plugin {
public function __construct() {
add_action( \'after_setup_theme\', array( $this, \'overwrite_wptheme_settings\' ) );
}
public function overwrite_wptheme_settings() {
add_image_size( \'tie-small\', 70, 70, false );
}
}
它不起作用,我重新复制了一张测试图像,看起来crop设置为true。我不明白为什么,因为值被覆盖了!我可以通过主题函数中的函数tie\\u last\\u帖子来验证这一点。主题的php。此函数用于生成具有后期缩略图图像的小部件:
[...]
function tie_last_posts($numberOfPosts = 5 , $thumb = true) {
// [...]
<?php global $_wp_additional_image_sizes;
var_dump($_wp_additional_image_sizes);
?>
<?php the_post_thumbnail( \'tie-small\' ) ; ?>
这将在小部件之前输出以下内容:
array(3) {
["tie-small"]=>
array(3) {
["width"]=>
int(70)
["height"]=>
int(70)
["crop"]=>
bool(false)
}
["tie-large"]=>
array(3) {
["width"]=>
int(300)
["height"]=>
int(160)
["crop"]=>
bool(true)
}
["slider"]=>
array(3) {
["width"]=>
int(620)
["height"]=>
int(330)
["crop"]=>
bool(true)
}
}
如您所见,属性
crop 在索引中设置为false
tie-small. 所以它被我的插件覆盖了。但是缩略图会被裁剪。我用一个测试图像验证了这一点,当它被wordpress裁剪时,它显然变得很糟糕。我总是在文章中重复这张图片。我已经验证了覆盖本身是否有效:我插入了add\\u image\\u size(\'tie small\',70,70,false);在主题功能结束时。php和它的工作,但在我的插件它不是。这里怎么了?