WordPress 无法上传 SVG 图片怎么办?

在 WordPress 上传 SVG 图片时,经常会遇到提示:“抱歉,由于安全原因,这个文件类型不受支持。”

出现这个问题的原因很简单:WordPress 默认不允许上传 SVG 文件
SVG 本质上是 XML 文本文件,里面可能包含脚本或恶意代码,如果直接开放上传,存在一定安全风险,所以 WordPress 默认把它拦截了。

解决方法

最简单、安全的方式是安装插件,例如:

  • Safe SVG
  • SVG Support

插件会在允许上传 SVG 的同时,对 SVG 文件进行安全清理。

在后台,插件-安装插件,搜索 SVG,选择一个 SVG 插件即可,如果发现安装之后依旧不行,更换插件即可。

svg 安全插件

如果你想用代码解决,也可以把下面代码加入主题的 functions.php 或自定义插件中:

function allow_svg_upload($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');

不过要注意:仅添加 MIME 类型只解决“能上传”的问题,不等于解决安全问题。如果网站允许多人上传文件,建议使用 Safe SVG 这类带清理功能的插件。

不建议的做法

不要为了上传 SVG 直接开启:

define('ALLOW_UNFILTERED_UPLOADS', true);

这会放宽更多文件上传限制,风险更高。

结论:
WordPress 无法上传 SVG,是因为默认安全策略限制。个人网站可以用代码开放;多人站点、客户站点更推荐使用带安全清理的 SVG 插件。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注