# WordPress给订阅者开启上传文件权限

- 原文链接：https://www.xintheme.com/wpjiaocheng/91720.html
- 发布日期：2020-07-26
- 更新时间：2021-05-07
- 作者：大胡子 | XinTheme
- 分类目录：WordPress教程
- 标签：WordPress上传图片、WordPress教程、WordPress用户投稿、WordPress用户权限

## 摘要

前言：直接将用户权限提升至「编辑」权限也可实现，下面我们要说的是不修改用户角色，在订阅者的角色上提升用户权限。 WordPress为了整个系统的安全性，默认订阅...

## 正文

前言：直接将用户权限提升至「编辑」权限也可实现，下面我们要说的是不修改用户角色，在订阅者的角色上提升用户权限。

WordPress为了整个系统的安全性，默认订阅者是不能上传图片的，而我们在制作一些主题的时候需要用到用户投稿功能，这个时候我们可以通过下面的代码让订阅者也可以上传图片。

```
function dahuzi_add_user_rights() {
	$role = 'subscriber';
	$role = get_role($role);
	$role->add_cap('upload_files');
}
add_action( 'admin_init', 'dahuzi_add_user_rights');
```

将上面的代码添加到当前使用[WordPress主题](https://www.xintheme.com/)的functions.php文件后，在投稿页面也显示出来了添加媒体的按钮，但是就是点击添加媒体上传图片后提示：抱歉，您不能添加附件到此文章。（如下图所示）

![](https://www.xintheme.com/wp-content/uploads/2020/07/QQ20200726-0.png)这个问题其实也困扰我很久了，今天抽空研究了一下，还是权限不够的问题，需要完整的实现订阅者用户上传图片，还需要添加「编辑已发布文章」「编辑其他文章」「删除文章」这些权限。

这里直接给出完整代码，将下面的代码放至当前使用[WordPress主题](https://www.xintheme.com/)的functions.php中。

```
//增加订阅者权限，使其可以在投稿的时候上传图片，删除图片
function dahuzi_add_user_rights() {
	$role = 'subscriber';
	$role = get_role($role);
	$role->add_cap('upload_files');
	$role->add_cap('edit_published_posts');
	$role->add_cap('delete_posts');
}
add_action( 'admin_init', 'dahuzi_add_user_rights');
```

需要注意的是，这些权限是直接写进数据库的，开启这些权限后，如需重新禁用这些权限时，直接删除这段代码是不行的。

如需禁用该权限，需要将以上代码中的`add_cap`替换成`remove_cap`

比如：

```
$role->add_cap('upload_files');
```

替换成：

```
$role->remove_cap('upload_files');
```

完美解决，教程结束...