我们最初是简单的给所有用户有上传文件并且设置
文件上传可以使用media_handle_upload和wp_handle_upload 类似的函数,其实都是调用
wp_handle_upload函数
这个函数的第4个参数 支持数组
代码如下 | 复制代码 |
$access = array('test_form' => false, 'mimes' => array('jpeg' => 'image/jpeg', 'png' => 'image/png','gif' => 'image/gif','jpg' => 'image/jpeg')); |
//这样写就可以限制文件的类型 但是貌似对伪造的文件不好使
经过测试可以使用一个过滤器 完美解决这个问题 过滤器名称:wp_handle_upload_prefilter
代码如下 | 复制代码 |
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' ); |
让用户拥有上传文件的权限
默认情况下,有些用户是不允许上传文件的,你可以在主题的 functions.php 添加下面的代码:
代码如下 | 复制代码 |
//允许用户投稿时上传文件 |
上面的代码就是给 'contributor' 这个用户角色添加了 'upload_files' (上传文件)的权限。
限制用户上传文件的类型
首先,大家可以先了解一下 WordPress 默认允许上传的文件类型,打开WordPress的 /wp-
includes/functions.php 文件,然后搜索 function wp_get_mime_types 定位到那里,你就会看到详细的文件类型:
代码如下 | 复制代码 |
function wp_get_mime_types() { officedocument.wordprocessingml.document', officedocument.wordprocessingml.template', officedocument.presentationml.presentation', |
=> 的前面为格式,后面为格式描述。如果你要禁止上传其中的某些类型,可以参考下面的例子:
将下面的代码添加到主题的 functions.php 文件:
代码如下 | 复制代码 |
//禁止上传avi和mp4格式的文件 add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes ( $existing_mimes=array() ) { unset ($existing_mimes['avi']); unset ($existing_mimes['mp4']); return $existing_mimes; } |
如果你还要禁止更多,可以按照 unset ($existing_mimes['格式']); 样例添加即可。
如果你仅仅只需要允许用户上传几种类型而已,还可以通过下面的更简洁的方法,代码添加到主题的
functions.php 文件:
代码如下 | 复制代码 |
//只允许上传图片文件 add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes ( $existing_mimes=array() ) { unset ($existing_mimes);//禁止上传任何文件 $existing_mimes['jpg|jpeg|gif|png']='image/image';//允许用户上传jpg,gif,png文件 return $existing_mimes; } |
如果你还要允许上传其他格式,重复使用 $existing_mimes['格式']='描述'; 即可。
限制用户上传的文件大小
同样在主题的 functions.php 文件中,添加下面的代码:
代码如下 | 复制代码 |
//限制上传文件的最大体积 function max_up_size() { return 500*1024; // 500 kb } |
代码如下 | 复制代码 |
add_filter('upload_size_limit', 'max_up_size'); |
上面的例子是限制所有用户上传的文件的最大体积为 500 kb (1M =1024*1024)。
注意:主机空间和WordPress本身一般设置了允许上传的文件的最大体积,所以在这里设置需要考虑到这
点。
限制不同用户角色可上传的文件类型及大小
其实上面已经给出了限制类型和大小的方法,要根据不同用户角色来限制,只需要添加角色判断代码即
可。倡萌举个综合的例子:
不同用户上传的类型
代码如下 | 复制代码 |
function custom_upload_mimes ( $existing_mimes=array() ) { 文件 { { |
大家只要灵活使用 if 语句判断不同的角色赋予不同的权限即可
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级