3

有谁知道如何让 wordpress 允许使用通过主题定制面板上传的 SVG 文件?

在主题 functions.php 文件中添加了以下内容,该文件允许上传 SVG(虽然没有预览或特色图像)。

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

但是,这仍然不允许我从文件系统上传或选择 SVG 或拖放一个。

4

5 回答 5

4

更新(WordPress 5+)

确保每个 SVG 文件都以:

<?xml version="1.0" encoding="utf-8"?>
于 2019-04-17T12:37:23.797 回答
3

您可以通过将其添加到当前主题 functions.php 文件来克服安全警告。

add_filter('upload_mimes', 'custom_upload_mimes');

function custom_upload_mimes ( $existing_mimes=array() ) {
    // add the file extension to the array
    $existing_mimes['svg'] = 'mime/type';
        // call the modified list of extensions
    return $existing_mimes;
}

然后您应该能够上传带有 .svg 扩展名的文件

于 2015-04-16T03:36:58.243 回答
3

如果您尝试通过 Media Uploader 简单地将 SVG 上传到 WordPress,您可能会遇到一些问题。

要么它给你一个错误并且不允许你上传文件,要么它允许你上传 .svg 文件但不会显示它。无论哪种方式,这里有两个简单的步骤可以轻松地在 WordPress 中启用 SVG 图像。

注意:您需要能够编辑您的主题(或子主题)functions.php文件和根.htaccess文件才能使其正常工作。

将 SVG MIME 类型添加到functions.php

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

您应该wpcontent_用自己的命名空间替换。此函数只是将 SVG 和 SVGZ(压缩的 SVG)添加到 WordPress 中允许的上传文件类型,并挂钩到 upload_mimes() WordPress 函数。

将 SVG Mime 类型添加到 .htaccess

因此,打开您的根.htaccess文件并在该行之后添加以下内容,#End WordPress.

# Add SVG Mime Types
AddType image/svg+xml svg
AddType image/svg+xml svgz       

保存文件,你就完成了!您现在可以从 Illustrator 或 Inkscape 保存 SVG,并在您的 WordPress 网站上使用它们。

来源在这里

于 2019-04-17T16:58:01.327 回答
0

请注意,如果您使用“另存为屏幕”,文件将不会上传,但“另存为...”有效(插图画家)

于 2020-07-03T16:29:38.997 回答
0

使用以下代码在 Wordpress 中支持 svg。它将导入和导出 .svg 媒体文件。

    功能主题名称_mime_types($mimes) {
        $mimes['svg'] = '图像/svg+xml';
        返回$mimes;
    }

    add_filter('upload_mimes', 'theme_name_mime_types');
    add_filter('mime_types', 'theme_name_mime_types');

于 2015-12-16T04:24:20.137 回答