星期二 , 2020-10-27
首页 > WordPress教程 > WordPress给投稿者和订阅者开启上传文件权限

WordPress给投稿者和订阅者开启上传文件权限

WordPress为了整个系统的安全性,默认投稿者是没有上传图片、视频及其它文件的权限的。但如果你的网站是个社区化类型的网站就需要给投稿者开启上传文件权限,比如允许用户上传头像、建立个人相册等,这些功能如果没给投稿者开启上传文件权限就无法实现。我就曾经被这个上传权限折腾过,原先在弄上传头像时发现前台投稿者用户怎么也无法上传头像,折腾比较久才想到这个权限的事。本文将介绍如何给投稿者开启上传文件权限。以下是具体方法:

1、给投稿者开启上传文件权限:

/*
给投稿者开启上传文件权限
代码来源: www.wpzhinan.com/jiaocheng/1790.html
*/
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');
}

代码说明:将以上代码插入主题function.php即可。但需要注意的是,这段代码开启投稿者上传文件权限后,如需重新禁用其上传文件权限时,直接删除这段代码并不能去掉投稿者的上传权限。如需禁用该权限,需要将以上代码中的:

$contributor->add_cap('upload_files');

修改为:

$contributor->remove_cap('upload_files'); 

只有这样,才能重新禁用投稿者上传文件权限。

2、也可以用以下代码实现给订阅者开启上传文件权限:

/*
给订阅者开启上传文件权限
代码来源: www.wpzhinan.com
*/
function enable_file_uploads_by_role( ) {
  $role = 'subscriber';
  if(!current_user_can($role) || current_user_can('upload_files'))
    return;
    $contributor = get_role( $role );
    $contributor->add_cap('upload_files');
} 

add_action('admin_init', 'enable_file_uploads_by_role');

原理是一样的,只是实现的代码不一样而已。

本文地址:http://www.wpzhinan.com/jiaocheng/1790.html
版权申明:除部分代码外,本站内容均为原创,转载请注明来源,违者必究侵权责任!

相关推荐

WP_Image_Editor_Imagick 指令注入漏洞修复方法

Imagick组件爆出了超级漏洞,危害等级极高,直接导致大量使用Imagick组件的网站均 ...