第一次接触Wordpress多用户社交类网站,接触了不少新功能,Wordpress默认全部用户上传附近大小都是一样的。
网站方要求除了管理员之外,要限制普通注册用户的上传大小限制,有插件可以实现,也可以用代码,我们给用的代码。
没限制之前都是50M:
在wp大学找到了现成的代码,根据自己需求改下就行,他这个更好,还限制了普通用户可上传的类型,我们根据需求改成了只支持图片。
//不同用户上传的类型 function custom_upload_mimes ( $existing_mimes=array() ) { unset ($existing_mimes);//禁止上传任何文件 if( current_user_can( 'publish_posts' ) && !current_user_can( 'publish_pages' ) ) { //只允许作者(Author)上传图片 $existing_mimes['jpg|jpeg|gif|png']='image/image';//允许用户上传jpg,gif,png文件 }elseif( current_user_can( 'edit_posts' ) && !current_user_can( 'publish_posts' ) ) { //只允许投稿者(Contributor)上传图片 $existing_mimes['jpg|jpeg|gif|png']='image/image'; }else{ //只其他用户角色上传图片 $existing_mimes['jpg|jpeg|gif|png']='image/image'; } return $existing_mimes; } //不同用户上传的大小 function max_up_size() { if( current_user_can( 'publish_posts' ) && !current_user_can( 'publish_pages' ) ) { return 2048*1024; // 允许作者(Author)上传 2M }elseif( current_user_can( 'edit_posts' ) && !current_user_can( 'publish_posts' ) ) { return 1024*1024; // 允许投稿者(Contributor)上传 1M }else{ return 500*1024; // 其他用户角色上传 500 kb } } //对管理员不生效 if( !current_user_can( 'manage_options' ) ) { add_filter('upload_mimes', 'custom_upload_mimes'); add_filter('upload_size_limit', 'max_up_size'); }
改之后:
作者用户只能上传2M,管理员还是50M。
其他可以参考:
WP上传限制插件:https://wordpress.org/plugins/wp-upload-restriction/#description
https://wordpress.stackexchange.com/questions/47580/give-users-a-maximum-upload-capacity-limit-the-number-of-files-a-user-can-uploa
https://stackoverflow.com/questions/55813343/how-to-increase-max-upload-file-size-for-specific-user-roles-in-wordpress
https://wordpress.stackexchange.com/questions/119964/set-a-maximum-upload-count-for-users-on-a-specific-user-role