默认状态下,WordPress 媒体管理只能识别出三种类型的多媒体文件:图片 (Image),视频 (Video) 和音频 (Audio)。有的站点需要用到很多别的附件,比如 PDF。有没有办法做到呢?当然可以,只需要使用一个简单的过滤钩子(Filter Hook)就可以实现。
如何让 WordPress 媒体管理可以识别更多的多媒体文件类型
实例:添加 PDF 识别
为了达到这个目的,将会使用到 post_mime_types 这个过滤器。
还会用到 mime type slug,而 PDF 的 slug 是 application/pdf,然后就来给这个参数定义,该参数包含这种文件的文本标签。
function modify_post_mime_types( $post_mime_types ) {// select the mime type, here: 'application/pdf'// then we define an array with the label values$post_mime_types['application/pdf'] = array( __( 'PDFs' ), __( 'Manage PDFs' ), _n_noop( 'PDF <span>(%s)</span>', 'PDFs <span>(%s)</span>' ) );// then we return the $post_mime_types variablereturn $post_mime_types;}// Add Filter Hookadd_filter( 'post_mime_types', 'modify_post_mime_types' );
好了,这样 PDF 文件就可以在媒体管理里面识别出来了
增加其他类型文件
同样的,只要是 WordPress 支持的类型都可以这样做。支持了类型可以在 wp-includes/functions.php 里面找到。
然后在 get_allowed_mime_types() 里可以找到详细的支持类型。
通过搜索 get_allowed_mime_types() 可以找到你需要的文件的 slug 。
WordPress 支持的文件类型有很多,就不一一列举了,但还是给个例子大家参考下吧。
‘pdf’ => ‘application/pdf’,
‘swf’ => ‘application/x-shockwave-flash’,
‘mov|qt’ => ‘video/quicktime’,
‘flv’ => ‘video/x-flv’,
‘js’ => ‘application/javascript’,
‘avi’ => ‘video/avi’,
‘divx’ => ‘video/divx’,
正如你所看到的,Flash 文件 .swf 的 slug 是 application/x-shockwave-flash。
本教程就到这里了,我想新手朋友们也应该学会如何添加 WordPress 媒体文件识别了吧。