【发布时间】:2020-07-11 23:34:39
【问题描述】:
我正在使用 Wordpress 插件“用户提交的帖子”来允许某些用户从前端写帖子。
我不希望他们在后端看到其他帖子,我希望他们拥有尽可能少的访问权限。因此,我希望他们只是“订阅者”。
我现在唯一的问题是“订阅者”不允许上传文件,因此“添加媒体”按钮不可见。我通过添加以下代码解决了这个问题:
if ( current_user_can('subscriber') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$subscriber = get_role('subscriber');
$subscriber->add_cap('upload_files');
}
有了这个代码,“添加媒体”按钮就在那里,“订阅者”可以访问媒体库(这很好)并且不允许他删除其他文件(也很好)。
但是当我尝试使用“订阅者”用户在前端编辑器中上传文件时,会出现以下错误:“抱歉,您不允许将文件附加到此帖子。”。
我已经尝试添加更多这样的角色:
if ( current_user_can('subscriber') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$subscriber = get_role('subscriber');
$subscriber->add_cap('upload_files');
$subscriber->add_cap('edit_attachments');
$subscriber->add_cap('edit_posts');
$subscriber->add_cap('edit_published_pages');
$subscriber->add_cap('edit_others_pages');
$subscriber->add_cap('edit_others_posts');
$subscriber->add_cap('level_0');
$subscriber->add_cap('level_1');
}
不幸的是,这仍然不起作用,出现同样的错误。任何想法为什么这不起作用以及需要哪些角色来完成这项工作?还有什么办法可以解决吗?
我的另一个想法是给他们“贡献者”角色,然后确保他们无法访问后端,但这似乎比只允许“订阅者”上传媒体文件更复杂。
【问题讨论】:
标签: wordpress