如何构建新的角色/能力计划?

时间:2014-02-24 作者:John

我的情况是,我需要在网站上将用户标记为“讲师”。该角色基本上应该是用户当前角色的任何角色,并增加了查看学生对称为“问题”的自定义帖子类型的评论的功能。

我正在努力从概念上实现这一点。我应该仅仅添加一个新功能并自行分配,还是应该添加它并将其分配给一个新角色?

[编辑]从kaiser的资源来看,我似乎应该添加自定义功能,并根据个人情况将其分配给用户,可能是从我自己插件的选项/设置管理页面,而不是创建特定的角色[/edit]

如果我将用户的角色更改为其他角色(例如从管理员更改为编辑器),但仍然希望他们具有该功能,会发生什么情况?这是一件很容易在自定义插件中编程的事情(我就是从这个插件来完成所有这些的),还是这将是一项巨大的任务?

以下是我的主要问题;

将用户角色从一个切换到另一个时的基本逻辑是什么?

切换用户角色时,分配的自定义功能是否会保留,或者新的角色分配是否会覆盖其他内容?

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

WordPress功能系统大致如下:

功能可以附加到用户或角色。角色可以附加到用户。角色是一个扁平的系统,因此没有什么可以推翻其他功能。角色名称也是功能。请记住,角色名称也是功能,但您不应该对其进行检查。不推荐的也一样level-0 直到level-9 大写字母。

理论上,WordPress支持每个用户有多个角色,这非常方便,因为您可以添加和删除角色名称下汇总的功能包。它只是没有UI,也不是内置的。哦,而且(好吧)没有提供这种功能的插件。

因此:yes 为用户分配功能是正常的。但请记住,这可能会很快导致维护噩梦。在大多数情况下,最好(不是完美的)只是抓住一个角色,将其功能复制到您的新角色,然后将新角色添加到用户。然后,当您想要更改某些内容时,只需将需要一组新CAP的所有用户的角色替换为。

注:这是我的意见。当谈到什么是噩梦和什么不是噩梦时,其他人可能会有不同的看法:)

结束

相关推荐

PHP致命错误:无法为wp-includes/capabilities.php中的非对象调用重载函数

我在apache日志中遇到了太多以下错误。PHP Fatal error: Cannot call overloaded function for non-object in wp-includes/capabilities.php on line 1187这是函数current\\u user\\u can($capability)的内部,第1187行如下所示:$current_user = wp_get_current_user(); 我不知道问题出在哪里?