允许参与者上载文件

时间:2018-02-20 作者:linpin

我想允许贡献者上传文件。所以我使用这个推荐的插件WP Role Editor 激活后,我从User > User Role Editor 然后在选择下拉列表中选择contributor。之后我检查了一下upload_files 然后点击更新。然后,我使用contributor帐户登录以测试上载文件。很好,我看到了media upload按钮,但当我单击上载文件时,出现以下错误:

抱歉,不允许您将文件附加到此帖子

我在他们的支持论坛上对此提出了一个问题,但插件作者没有给出解决方案。

现在,我尝试了在Google中找到的下面的代码。但是,它根本不显示“上载媒体”按钮。

// Let Contributor Role to Upload Media
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\' );
    }
那么,我还能做些什么来完成这件事呢?为什么WordPress不允许参与者角色上传文件?根据我使用的主题,如果我希望用户提交帖子并获得批准,我必须在默认情况下为注册用户设置此角色。

1 个回复
SO网友:mahmoud abdulnasser

我用这段代码让订阅者上传文件,它成功地工作了。。我想你必须在最后一行加上true。

if ( current_user_can(\'subscriber\') && !current_user_can(\'upload_files\') ) {

    add_action(\'init\', \'allow_subscriber_uploads\');

    function allow_subscriber_uploads() {
      $new_role = get_role(\'subscriber\');
      $new_role->add_cap(\'upload_files\', true);
     }
 }

结束

相关推荐

为什么wp_users表中的USER_PASS列是varchar(64)

在处理项目时,我发现“wp\\u users”表中的“user\\u pass”列是varchar(64)。WordPress总是将用户密码存储在md5中,md5是一个32字符的ASCII字符串。那么,为什么不将其存储在具有ascii排序规则的char(32)中呢。我这样问是因为我正在处理一个存储用户密码的表。使用varchar(64)还有其他好处吗。