WordPress限制上传文件大小及上传文件类型
如果网站开放式给用户投稿的话,用户可以上传图片文件等,对于上传图片文件大小是需要管理员限制的,如果不限制会占用我们很多服务器资源。包括我们对于上传文件类型,也需要限制,比如:上传视频等是需要禁止的,只能上传图片。网站管理员是不希望用户上传任意的媒体文件,这时我们可以对用户上传的文件后缀进行判断,从而来限制上传的文件类型。
将以上代码添加主题 functions.php 文件中即可,第3行可修改允许上传的文件后缀。
限制用户上传的媒体文件
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' );
}
注意:上方代码第13,14行是对多站点和管理员进行排除,多站点的可以在『后台我的站点——管理网络——设置』中的『上传文件类型』设置,不需要可以删除这两行代码。
WordPress上传文件大小限制
限制上传文件的最大体积值,第2行可修改允许上传大小限制。
function max_up_size() {
return 500*1024; //限制500kb
}
add_filter('upload_size_limit', 'max_up_size');
让用户拥有上传文件的权限
默认情况下,有些用户是不允许上传文件的,你可以在主题的 functions.php 添加下面的代码:
允许用户投稿时上传文件
if ( current_user_can('contributor') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_contributor_uploads');
function allow_contributor_uploads() {
$contributor = get_role('contributor');
$contributor->add_cap('upload_files');
}














