SVG,作为一款广泛采用的矢量图形格式,已经在各大现代浏览器中得到充分支持。然而,尽管WordPress目前并未内建SVG的兼容性,使得用户无法直接在文章或媒体库中上传SVG图像,但这并不意味着SVG的运用是无解的。虽然考虑到JavaScript嵌入可能带来的安全风险,但这并非不可克服的问题。实际上,限制SVG的支持反而显得没有必要,因为WordPress是一个充满可能性的开源平台。
尽管WordPress原生不支持SVG上传,但我们可以通过一些途径为网站增添这一功能。以下是一段代码,可将其添加到你的主题的functions.php文件或自定义插件中,以启用WordPress的SVG上传功能:
“`php
add_filter(‘wp_check_filetype_and_ext’, function ($Data, $file, $filename, $mimes) {
global $wp_version;
if ($wp_version !== ‘4.7.1’) {
return $data;
}
$filetype = wp_check_filetype($filename, $mimes);
return [
‘ext’ => $filetype[‘ext’],
‘type’ => $filetype[‘type’],
‘proper_filename’ => $data[‘proper_filename’],
];
}, 10, 4);
add_filter(‘upload_mimes’, function ($mimes) {
$mimes[‘svg’] = ‘image/svg+xML’;
return $mimes;
});
add_action(‘admin_head’, function () {
echo ‘ .attachment-266×266, .thumbnAIl img { width: 100% !important; height: auto !important; } ‘;
});
“`
需要注意的是,以上代码并没有包含安全检查,因此对于多用户WordPress站点来说,并非理想选择。
为了更安全地在WordPress中启用SVG支持,推荐使用“Safe SVG”插件。这款插件不仅允许SVG上传,还会对文件进行清理和验证,有效预防可能存在的安全隐患,其安全性得益于svg-sanitizer库。
另外,流行的页面构建器Elementor也内置了SVG支持,不过它仅限于在Elementor编辑器内部使用,而不能直接在默认的媒体库中上传SVG。
总之,无论你选择通过代码还是插件,总有办法在WordPress中充分利用SVG的优势。