Capability to edit post slugs

时间:2017-06-11 作者:Erythros

我有一个允许发布文章的自定义角色(唯一允许发布的角色)。除了角色无法编辑slug之外,其他一切都正常工作。它可以按“编辑”,键入任何内容,但在保存时会重置。

我应该添加什么权限才能做到这一点?

1 个回复
SO网友:Frank P. Walentynowicz

如果只想编辑自己的帖子,请使用author的功能。如果还需要编辑其他用户的帖子,请使用编辑器的功能。

案例1

function wpse_add_your_role() {
    $role = get_role( \'author\' );
    if ( ! empty( get_role( \'your_role\' ) ) ) { 
        remove_role( \'your_role\' );
    }
    add_role( \'your_role\', \'Your Role\', $role->capabilities );
}
add_action( \'init\', \'wpse_add_your_role\', 10 );

情况2

function wpse_add_your_role() {
    $role = get_role( \'editor\' );
    if ( ! empty( get_role( \'your_role\' ) ) ) { 
        remove_role( \'your_role\' );
    }
    add_role( \'your_role\', \'Your Role\', $role->capabilities );
}
add_action( \'init\', \'wpse_add_your_role\', 10 );
在这两种情况下,将代码放在当前主题的functions.php 文件创建新角色后,从中删除代码functions.php, 或注释掉这一行:

// add_action( \'init\', \'wpse_add_your_role\', 10 );
您可以使用$role->add_cap()$role->remove_cap() 方法,根据您的需要。在情况1中,不要移除edit_posts 能力。在案例2中,不要移除,edit_posts 也没有edit_others_posts 能力。

结束

相关推荐

About Wordpress capabilities

我知道WordPress是博客引擎的最佳选择,通过一些插件,如Advance Custom Field,WP可以成为一个很棒的CMS。但它仍然有利于出版商将内容推送给用户。现在我的处境相当严峻。我的朋友想使用WP作为一个引擎,用户可以贡献他们的帖子,其他人可以查看它。是否可以使用WP我可以创建自定义主题(&a);插件可以做到这一点,但当用户在插件上放置很多东西(页面和帖子)时,它对性能有好处吗?