You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中允许上传xlsm格式媒体文件?配置代码不生效如何解决?

问题原因及解决方案
  • MIME类型校验不匹配:WordPress 4.7.1及以上版本除了检查upload_mimes注册的类型,还会校验文件实际的MIME类型,你当前只注册了扩展名对应的MIME,没有处理实际文件校验的逻辑,这是最常见的报错原因。
  • 代码加载优先级/位置错误:如果你修改的是父主题的functions.php,父主题更新后代码会被覆盖;如果代码加在了文件末尾的PHP闭合标签?>之后,代码不会生效;如果主题或其他插件也修改了上传MIME列表,优先级不够也会导致你的配置被覆盖。
  • 多站点全局配置限制:如果是WordPress多站点模式,网络管理后台的「上传文件类型」全局设置会优先于单站的MIME过滤配置,需要在全局设置里手动添加xlsm后缀。

完整修复代码

替换你原来添加的代码即可:

// 注册xlsm扩展名对应的MIME类型
function zerodropout_mime_types( $mime_types ) {
    $mime_types['xlsm'] = 'application/vnd.ms-excel.sheet.macroEnabled.12';
    return $mime_types;
}
// 调整优先级为999,避免被其他配置覆盖
add_filter( 'upload_mimes', 'zerodropout_mime_types', 999, 1 );

// 兼容WordPress实际文件MIME校验逻辑
function zerodropout_check_filetype( $checked, $file, $filename, $mimes ) {
    $ext = pathinfo( $filename, PATHINFO_EXTENSION );
    if ( $ext === 'xlsm' ) {
        $checked['ext'] = 'xlsm';
        $checked['type'] = 'application/vnd.ms-excel.sheet.macroEnabled.12';
        $checked['proper_filename'] = $filename;
    }
    return $checked;
}
add_filter( 'wp_check_filetype_and_ext', 'zerodropout_check_filetype', 999, 4 );

内容的提问来源于stack exchange,提问作者Arra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:36:02