如何允许特定用户发布特定类型的帖子?

时间:2013-03-27 作者:Justin Helgerson

以下是我的网站设置的简要总结:

我有一个相对简单的Intranet站点。现在,我正在利用帖子为用户提供新闻。我也在使用页面。我只希望某些用户能够做这些事情(比如说“编辑器”)。

我想做的是建立一个网站的社区部分,在那里所有用户都可以发表帖子(出售物品等)。我想知道最好的方法是什么?我可以使用一个类别来轻松显示这些类型的帖子。但是,我不希望用户能够发表任何类型的帖子。我只希望他们能够发布到社区。如果有人发布新闻,我希望他们有更高的安全级别。

如果我想得不对,我想听听其他的想法!

Edit:

这是我当前的自定义邮政编码:

function createCommunityPostType() {
    $args = array(
            \'public\' => true,
            \'label\' => \'Community\'
    );
    register_post_type(\'community\', $args );
}
add_action(\'init\', \'createCommunityPostType\');

1 个回复
最合适的回答,由SO网友:vancoder 整理而成

以下内容将为您的CPT分配能力需求。因此,用户将需要edit\\u community、delete\\u community等功能来执行这些操作。

function createCommunityPostType() {
    $args = array(
            \'public\' => true,
            \'label\' => \'Community\'
            \'capability_type\' => \'community\',
            \'map_meta_cap\' => true
    );
    register_post_type(\'community\', $args );
}
add_action(\'init\', \'createCommunityPostType\');
请参阅中有关功能的部分the codex.

您还需要将这些上限分配给您的用户。您可以为此使用插件(请参阅成员插件),也可以自己执行:

function my_after_setup_theme() {

    $role = get_role( \'subscriber\' );
    $caps_set = get_option( \'my_caps_set\' );
    if ( !$caps_set ) {
        $role->add_cap( \'edit_community\' );
        $role->add_cap( \'read_community\' );
        $role->add_cap( \'delete_community\' );
        // ... and so forth (see codex for caps list)

        update_option( \'my_caps_set\', true );
    }
}

add_action( \'after_setup_theme\', \'my_after_setup_theme\' );
我们设置了一个设置标志,以保存多次重置CAP。

上面的代码假设您要将这些CAP分配给订阅者,但您可以将其更改为任何角色,或创建自己的角色。

结束

相关推荐

wp_posts - guid update

您好,如果之前已经回答过,请原谅,但我们确实需要确保。我们在自己的域名下开发了一个网站,然后将其移动到客户的实时网站。为了更新到新的url,我们在db中运行了一些sql查询,但当我们在数据库中搜索域名时,我们在表wp\\U POST中得到了600多个匹配项(大部分是修订,但也有附件和POST)。我们在《WP法典》中读到,我们不应该更新该专栏,但我们不太确定如果我们这样做,会对网站产生怎样的影响。这些文件仍在我们的域中,我们需要删除它们,但我们认为,由于数据库中仍有调用我们域的实例,如果我们这样做,可能会出