专注 WordPress 高端企业主题的的设计与开发!

WordPress 限制上传媒体的文件类型

18 天前 234次

MNewsLensNews 主题都有前台投稿的功能,用户可以上传图片等文件,管理员是不希望用户上传任意的媒体文件,这时我们可以对用户上传的文件后缀进行判断,从而来限制上传的文件类型。

萨龙网络使用多站点已经很长时间,在后台网络管理中,多站点默认提供了允许上传的文件后缀选项,所以就把多站点的这个功能引用到主题中,代码如下:

  1. //限制用户上传的媒体文件
  2. function salong_check_upload_mimes( $mimes ) {
  3.     global $salong;
  4.     $site_exts = array('jpg','png'); //输入允许上传的文件后缀
  5.     $site_mimes = array();
  6.     foreach ( $site_exts as $ext ) {
  7.         foreach ( $mimes as $ext_pattern => $mime ) {
  8.             if ( $ext != '' && strpos$ext_pattern$ext ) !== false )
  9.                 $site_mimes[$ext_pattern] = $mime;
  10.         }
  11.     }
  12.     return $site_mimes;
  13. }
  14. if(!is_multisite() && !current_user_can( 'manage_options')){
  15.     add_filter( 'upload_mimes', 'salong_check_upload_mimes' );
  16. }

将以上代码添加主题 functions.php 文件中即可,第4行可修改允许上传的文件后缀。

注:代码第14,16行是对多站点和管理员进行排除,多站点的可以在『后台我的站点——管理网络——设置』中的『上传文件类型』设置,不需要可以删除这两行代码。