一行代码彻底禁用WordPress缩略图自动裁剪功能

自从WordPress升级4.4之后,推出了srcset这个图片多屏自适应功能之后,这个恶心的裁剪又出现了,用新版本 WordPress 的朋友可以查看下你的图片目录,是不是有这样的情况:


全盘搜了半天文件关键词thumbnail ,找到了如下代码:

function set_post_thumbnail_size( $width = 0, $height = 0, $crop = false ) {
    add_image_size( 'post-thumbnail', $width, $height, $crop );
}

看得出,这是设置图片裁剪尺寸的函数,而且很明显调用了 add_image_size 这个函数功能,继续搜索了解了到  add_image_size 这个函数的功能是“注册一个新的图片尺寸,意味着你上传新的图片,WordPress 就会创建一个按照这个尺寸的新特色图片。”

尼玛,看来这才是本文的“罪魁祸首”!如果想彻底禁止 WordPress 私自裁剪图片,就只能干掉这个函数了!

最野蛮粗暴的方法就是找到这个函数,然后在函数里面加入retrun 返回即可,也就是让函数中的代码见鬼去。。。但是,这样的做法实操性太烂,每次更新WordPress都得重新来一遍,好不苦逼!

通过观摩网上已有的一些禁止某个功能的做法,得出了一个比较合理的做法:

//彻底禁止WordPress缩略图
add_filter( 'add_image_size', create_function( '', 'return 1;' ) );

将上述代码复制到 WordPress 主题 functions.php 里面即可彻底禁止缩略图裁剪功能。

其实就是在函数里面硬插入一个return,将这个函数废弃掉了!

到这里,本文相关内容就分享完了,但如果你只满足于此,那还是只学到了鱼,而不是渔!那本文的渔是什么呢?

已经很明显了,喜欢思考的朋友肯定想到了!那就是——在WordPress里面禁用任何函数的方法!

比如,你知道WordPress里面有个自带的功能函数叫 create_fun_core,你不想让他烦人,而且还不想直接在WordPress核心文件中动刀,那么用add_filter来解决是最好不过了!

Ps:如何找到这个函数名,这就是更高级的技巧了,张戈也是靠顺藤摸瓜,或者全盘搜索关键词这种苦逼做法。。。

具体代码如下:

 //禁用 create_fun_core 函数
add_filter( 'create_fun_core', create_function( '', 'return 1;' ) );

是不是超简单?很多网上分享的禁止WrodPress某个烦人的功能,绝大多说都是用的这种方法,如果你也学会了请点赞!

补充一句:其实应该还有一个更简单的代码,原理都是利用WordPress的过滤器功能:

 //禁用 create_fun_core 函数
add_filter( 'create_fun_core', '__return_false' );