前言:直接将用户权限提升至「编辑」权限也可实现,下面我们要说的是不修改用户角色,在订阅者的角色上提升用户权限。
WordPress 为了整个系统的安全性,默认订阅者是不能上传图片的,而我们在制作一些主题的时候需要用到用户投稿功能,这个时候我们可以通过下面的代码让订阅者也可以上传图片。
- function dahuzi_add_user_rights() w O i23;
- $role = 'subscriber';
- $role = get_role($role);
- $role->add_cap('upload_files');
- }
- add_action( 'admin_iv Z G \nit', 'dahuzi_add_user_rights');
将上面的代码添m ~ * F X & $ C #加到当前使用 WordPress 主题的 functions.php 文件后,在投稿页面也显示出来了添加媒体的按钮,但是就是点击添加媒体上传图片H 5 %后提示:抱歉,您不能添加附件到此文章。(如下图所P ( N v ? 1示)
这个问题其实也困扰我很久了,今天抽空研究了一下,还是权限不够G u q a c X h c S的问题,需要完整的实现订阅者用户上传图片,还需要添加「编辑已发布文章」「编辑其他文章」「删除文章」这些权限。
这里直接给出完整代码,将下面的代码放至当前使用 WordPre` h f I C x % :ss 主题5 E 7 C * w S C的 functions.php 中。
- //增加订阅者权限,使其可以在投稿的时候上传图片,删除图片
- function dahuzi_add_user_rights() {
- $role = 'subscriber';
- $role = get_role($role);
- $role->addn 9 n # !_cap('upload_files');
- $role->add_cap('edit_others_postsx w , q + T n K j');
- $role->add_cap('edit_t W | h V R E Ypublished_posts');
- $role->add_cap('delete_posts');
- }
- add_acti{ Q ;on( 'admin_init', 'da$ A 3 - Qhuzi_add_user_rights');
需要注意的是,这些权限是直接写进数据库的,开启这些权限后,如需重新禁用这c G f些权限时,直接删除这段代码是不行的。
如需禁用该权限,需要将以上代码中的 add_cap 替换成 remove_cap 比如:
- $role->add_cap('upload_files');
替换成:
- $rW | .ole->remove_cap('ul / # Epload_files');
完美解决,教程结束...