【问题标题】:No menu using Custom User Role in WordPress在 WordPress 中没有使用自定义用户角色的菜单
【发布时间】:2016-02-02 01:45:01
【问题描述】:

我刚刚使用我的 functions.php 文件中的以下代码创建了一个自定义用户角色“Lister”。 我有新角色在后端工作,并创建了一个用户进行测试。登录后,唯一的菜单选项是 Profile 和 Dashboard。为什么没有帖子菜单项? 谢谢

$lister_user_role = add_role('lister', __('Lister'), 

    array(

    'read'          => true, //true allows this capability
    'edit_posts'    => true, //allows user to edit posts
    'create_posts'  => true, //allows users to create posts
    'publish_posts' => true, //allows users to publish posts

    'delete_posts'      => false, //do not allow user to delete posts
    'edit_others_posts' => false, //do not allow a lister to edit others' posts
    'edit_themes'       => false, //do not allow a lister to edit theme
    'install_plugins'   => false, //do not allow a lister to install plugins
    'update_plugin'     => false, //do not allow a lister to update plugins
    'update_core'       => false  //do not allow a lister to update WP Core

    )

); 

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    来自 codex (https://codex.wordpress.org/Function_Reference/add_role) 中的 add_role 文章:

    如果您要定义自定义角色,并使用 add_role() 向角色添加功能,请注意修改功能数组并重新执行 add_role() 不一定会使用新功能列表更新角色。如果角色已存在于数据库中,则 add_role() 函数会短路。

    换句话说,当您第一次创建角色并执行您的网站时,该角色已创建。在那个时候,你可能没有设置你想要的所有字段。因此,要更新您的新用户角色,您应该首先使用 remove_role (https://codex.wordpress.org/Function_Reference/remove_role) 将其删除,然后再次使用 add_role。

    此外,在重新创建角色后,尝试将用户分配给任何其他角色,然后再次返回您的“lister”角色。希望这会有所帮助。

    【讨论】:

    • 非常感谢您的帮助。一切都很好。
    猜你喜欢
    • 2016-11-13
    • 1970-01-01
    • 2019-11-20
    • 2021-02-02
    • 1970-01-01
    • 2014-10-12
    • 2015-06-05
    • 1970-01-01
    • 2015-12-20
    相关资源
    最近更新 更多