允许在 WordPress 中上传 .json 文件

我想在 WordPress 的媒体库中上传 .json 文件。原因是我正在使用 Lottie 动画,并且输出是动画 .svg 文件。我只想从后端检索文件 url 以在前端使用它。不幸的是,即使使用以下代码,.json 也无法导入:


function cc_mime_types($mimes) {

    $mime_types = array(

        'svg'     => 'image/svg+xml',

        'json'     => 'application/json',

    );

    return $mimes;

   }

add_filter('upload_mimes', 'cc_mime_types');


define( 'ALLOW_UNFILTERED_UPLOADS', true );

有谁知道此类问题的解决方案?


喵喔喔
浏览 152回答 4
4回答

莫回无

由于 PHP 确定 json 文件的 mime 类型text/plain,正确的解决方案是:function my_mime_types($mimes) {    $mimes['json'] = 'text/plain';    return $mimes;}add_filter('upload_mimes', 'my_mime_types');

慕尼黑5688855

在原始代码中,您声明了新的 mime 类型$mime_types,但不对其执行任何操作,而是返回原始的未更改的类型$mimes。至于您的工作解决方案,您可以仅使用一个函数,如下所示:function cc_mime_types($mimes) {    $mimes['json'] = 'application/json';    $mimes['svg'] = 'image/svg+xml';    return $mimes;}add_filter('upload_mimes', 'cc_mime_types');

白衣非少年

我只是添加了两个不同的函数而不是数组,并且由于某种原因它起作用了。function json_mime_types($mimes) {    $mimes['json'] = 'application/json';    return $mimes;   }add_filter('upload_mimes', 'json_mime_types');function cc_mime_types($mimes) {    $mimes['svg'] = 'image/svg+xml';    return $mimes;   }add_filter('upload_mimes', 'cc_mime_types');``

慕工程0101907

如果这对任何人有帮助,如果您使用 WordPress Multisite,其中需要首先在“网络管理”->“设置”中声明子站点允许的文件类型列表,则ALLOW_UNFILTERED_UPLOADS常量或upload_mimes过滤器都不会自行工作WordPress 中的页面。显然,您的 WordPress 用户需要足够的权限才能看到此设置页面。根据我的经验,一旦您添加json到此列表中,upload_mimes过滤器就会按预期工作。
打开App,查看更多内容
随时随地看视频慕课网APP