WordPress 限制上传媒体的文件类型
MNews 和 LensNews 主题都有前台投稿的功能,用户可以上传图片等文件,管理员是不希望用户上传任意的媒体文件,这时我们可以对用户上传的文件后缀进行判断,从而来限制上传的文件类型。
萨龙网络使用多站点已经很长时间,在后台网络管理中,多站点默认提供了允许上传的文件后缀选项,所以就把多站点的这个功能引用到主题中,代码如下:
- //限制用户上传的媒体文件
- function salong_check_upload_mimes( $mimes ) {
- global $salong;
- $site_exts = array('jpg','png'); //输入允许上传的文件后缀
- $site_mimes = array();
- foreach ( $site_exts as $ext ) {
- foreach ( $mimes as $ext_pattern => $mime ) {
- if ( $ext != '' && strpos( $ext_pattern, $ext ) !== false )
- $site_mimes[$ext_pattern] = $mime;
- }
- }
- return $site_mimes;
- }
- if(!is_multisite() && !current_user_can( 'manage_options')){
- add_filter( 'upload_mimes', 'salong_check_upload_mimes' );
- }
将以上代码添加主题 functions.php 文件中即可,第4行可修改允许上传的文件后缀。
注:代码第14,16行是对多站点和管理员进行排除,多站点的可以在『后台我的站点——管理网络——设置』中的『上传文件类型』设置,不需要可以删除这两行代码。