通过代码实现WordPress支持webp图片格式的方法

虫子君 2019.4. 2612:06:28 5 1,463

最近一直在研究WordPress加载加速的问题,研究了蛮久,发现进度非常的缓慢,转战css吧,可是对于不懂PHP的虫子君来说,还是非常的麻烦的一件事情。不得已只好转战图片上面。

相信使用过wordpress的小伙伴来说,wp有一个是不支持webp格式的,但是wordpress的开源性,简单的设置一下就好了。

实现的方法有不少,可以直接修改Wordpress的程序文件当中的function.php文件,也可以通过修改主题当中的function.php来实现。

今天,主要是通过修改主题的function文件来实现,相比之下,比直接修改wordpress的程序文件会好一些,那是因为wordpress经常性的更新,我们不可能每一次更新都去修改一次文件,修改次数多了,难免会出错。

虽然webp图片,相比之下会比jpg格式的图片轻巧许多,根据官方“googel”说要比jpg同样的质量下,小将近40%,但是,(这里有一个但是!!!)但是webp格式的图片,会在部分版本的浏览器当中无法显示,以下是支持webp格式图片的浏览器版本。

通过代码实现WordPress支持webp图片格式的方法

好了,说了那么多的废话,下面正题开始;

首先在打开主题的function.php文件,然后在最后添加如下代码:

require get_template_directory() . '/inc/theme-setup.php';
function my_upload_mimes($mimes = array()) {
$mimes['svg'] = 'image/svg+xml';
$mimes['webp'] = 'image/webp';
return $mimes;
}

这里虫子君解释一下,其中webp是我们今天的主角,然后svg是虫子君之前的的文章中写的。给wordpress主题制作一个SVG格式logo以及让wp支持显示svg图片

当然仅仅是让wordpress支持webp文件还远远不够的,这样子的话,我们是无法在wordpress的媒体资源当中预览图片的,现在需要再给wordpress新增一个预览webp图片的功能。

function bzg_file_is_displayable_image($result, $path) {
	$info = @getwp-content/uploadsize( $path );
	if($info['mime'] == 'image/webp') {
		$result = true;
	}
	return $result;
}
add_filter( 'file_is_displayable_image', 'bzg_file_is_displayable_image', 10, 2 );

以上代码来源于;背字根博客

虫子君

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:5   其中:访客  4   博主  1

    • avatar 醉后的力量

      方法无效,鉴定完毕~~~~

        • avatar 倪大叔

          @醉后的力量 那是你不会用吧,我自己网站就是这样的。

            • avatar 醉后的力量

              @倪大叔 几种方法都试过了,只有硬改WP配置文件的方式才有效!!!你用的不是最新版的WP吧?

              • avatar 醉后的力量

                @倪大叔 还有就是,这个格式要添加到WP默认文件当中才有效。你这个方法也许只是针对以前的老版本才有效,不信,你可以亲测新版本看看有没有效果。而且,感觉你这个代码也是搬运别人的!

                  • avatar 虫子君 Admin

                    @醉后的力量 我有效果就行了,至于你有没有效果与我无关哈。毕竟我没有义务为你解答。