我刚开始在我的网站上使用HTML5视频,但当我尝试将.webm文件上传到WordPress的媒体管理器时,它向我显示了以下错误:
事实证明,默认情况下,WordPress没有.webm作为其允许的mime类型的一部分,因此我们需要自己添加它。
快速搜索WordPress核心文件会将我们带到wp-includes / functions.php中的wp_get_mime_types() 函数。 在这个函数中,在1887行,WordPress为我们提供了一个名为mime_types的过滤器,完美无缺。
现在我们有了一个合适的过滤器,我们只需要挂钩并将新的mime类型添加到现有的mime类型数组中。 我在这个例子中添加了webm ,但如果你需要添加另一个mime类型,你只需用自己的值替换值。 将以下内容添加到您的functions.php中:
function my_theme_custom_upload_mimes( $existing_mimes ) {
// add webm to the list of mime types
$existing_mimes['webm'] = 'video/webm';
// return the array back to the function with our added mime type
return $existing_mimes;
}
add_filter( 'mime_types', 'my_theme_custom_upload_mimes' );
注意:关于此主题的许多教程都建议使用upload_mimes过滤器,但是如果你不小心,你实际上会替换整个mime类型数组,而不是添加它。 这意味着您将无法上传任何文件类型,而是您添加的文件类型! 不完全是我们想要的。
如果你想仔细检查一切正常,只需使用像template_redirect这样的WordPress动作钩子将wp_get_mime_types()函数的内容直接转储到你的页面:
function my_theme_output_upload_mimes() { var_dump( wp_get_mime_types() ); } add_action( 'template_redirect', 'my_theme_output_upload_mimes' );
刷新你的网站,你会看到mime类型数组(真的很长)添加了新的mime类型。
当然,要真正测试一切是否按预期工作,请将文件上传到媒体管理器,现在应该可以完美地上传。
您也可以使用插件来获得相同的结果: http://wordpress.org/plugins/wp-add-mime-types/
关注微信公众号themebest
- 第一时间获取主题更新动态,优惠信息
- WordPress动态、教程分享