允许WordPress贡献者角色上传图片附件

1638632978 20211204154938 61ab8e12c1f94

我们先简单了解一下WordPress用户角色拥有的权限:

管理员:和安装WordPress时的创始人一样,拥有对后台的完整权限。

编辑:可以发布文章,拥有对网站所有文章、页面、评论编辑权限。

作者:可以发布文章,但只能编辑自己发布的文章。

投稿者:可以投递文章,但需要管理员审核后文章才能显示,在管理员审核前可以对文章进行编辑,管理员审核后则不能编辑文章,编写文章时上传不了媒体如图片、音频等。

订阅者:只能浏览后台及编辑自己的个人信息。

从权限中可以看出投稿者默认不支持上传图片,这对投稿者造成不便,一篇没有图片的文章怎么能吸引读者呢,那么我们如何让WordPress投稿者支持上传或删除图片呢?

1638632978 20211204154938 61ab8e12d24de

只需要将下面的代码添加到当前主题函数模板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');
}

注意:上面的代码执行一次后,投稿者上传或删除图片的权限会写入数据库,即使将代码从functions.php移除,投稿者仍然拥有上传或删除图片的权限。

要去掉投稿者上传或删除图片的权限,在当前主题的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->remove_cap('upload_files');
}
Posted in 外贸建站教程.