【问题标题】:Allow 'subscriber' to upload media files - “Sorry, you are not allowed to attach files to this post.”允许“订阅者”上传媒体文件 - “抱歉,您不能将文件附加到此帖子。”
【发布时间】: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


    【解决方案1】:

    我刚刚遇到了同样的问题并看到了这个。通过添加“编辑已发布的页面”解决了我的问题:

    //Let Subscriber Role to Upload Media
    if ( current_user_can('subscriber') && !current_user_can('upload_files') )
        add_action('admin_init', 'allow_subscriber_uploads');
    function allow_contributor_uploads() {
        $subscriber = get_role('subscriber');
        $subscriber->add_cap('upload_files');
        $subscriber->add_cap('edit_published_pages');
    }
    

    【讨论】:

    • 这已经在我帖子的代码中了,但对我不起作用。
    【解决方案2】:

    “编辑已发布的页面”命令有效。

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2017-02-23
    • 2020-12-10
    • 2018-12-19
    相关资源
    最近更新 更多