如何在WP中开启允许上传svg格式图片

WordPress 默认禁用 SVG 上传并非因为它“不好”,而是因为 SVG 的本质是代码,而不是像素。

  1. 核心原因:SVG 是“潜伏”的代码

传统的图片格式(如 JPEG 或 PNG)是二进制数据,而 SVG (Scalable Vector Graphics) 实际上是 XML 格式的文本代码

由于 SVG 是可以被解析的代码,黑客可以在 SVG 文件中注入恶意的 JavaScript 代码(这种攻击被称为 XSS,跨站脚本攻击)。

  • 场景: 如果你上传了一个带有恶意脚本的 SVG,当其他用户(甚至是你自己)在浏览器中预览这张图时,脚本就会在浏览器后台运行,从而可能导致网站权限被盗或数据泄露。

为了保护绝大多数不具备代码审计能力的用户,WordPress 官方选择了最稳妥的方案:默认彻底封锁。

  1. 如何安全地开启 SVG 支持?

虽然官方默认禁用,但作为设计师或开发者,SVG 的清晰度和超小体积又是不可或缺的。你可以通过以下方式安全地开启它:

方案 A:使用插件(最推荐)

安装专门处理 SVG 的插件,它们不仅能开启上传权限,还会进行 SVG Sanitization(SVG 清洗),自动剔除代码中潜在的危险脚本。

  • 推荐插件 1:SVG Support
    • 特点:简单好用,支持在 Elementor 中直接预览。
  • 推荐插件 2:Safe SVG
    • 特点:专注于安全清洗,确保每一个上传的 SVG 都是纯净的。

方案 B:手动开启(不推荐新手,因为不安全)

你可以通过在主题的 functions.php 文件中添加代码来强行允许 SVG 上传,但这种方式没有安全清洗功能。如果你是唯一的操作者且来源可靠,可以使用:

PHP

function cc_mime_types($mimes) {

  $mimes[‘svg’] = ‘image/svg+xml’;

  return $mimes;

}

add_filter(‘upload_mimes’, ‘cc_mime_types’);

  1. 在 Elementor 中使用 SVG

既然你在使用 Elementor,你会发现即使你安装了插件,Elementor 有时也会弹出警告。

  1. 进入 Elementor > 设置 > 高级
  2. 找到 “启用未过滤文件上传” (Enable Unfiltered File Uploads)
  3. 将其设置为 启用
  • 注意:这会允许你上传 SVG 和 JSON(如 Lottie 动画),请确保你的 SVG 来源是可靠的(比如你自己设计的或从 Flaticon 等大平台下载的)。

 

发表评论

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