我惊讶地发现add_role()修改了数据库,并且如果角色已经存在则失败。这里有两个含义,一个比另一个严重:1)如果您正在开发并更新add_role代码,则必须首先remove_role()2)一旦正确,就永远不必运行该代码再次。
因此,通常我一直将add_role()放在wp_loaded动作挂钩中。并且由于我正在开发中,所以我还在add_role之前添加了remove_role(),因此可以确定,如果我修改了大写字母列表,它将实际上生效。
但是很明显,每次访问博客页面时都在运行此命令。好的,我可以将其置于仅限管理员的操作中,也可以在“用户”或“工具”下创建一个插件页面,该角色可以一次创建。我想我希望有一个更简单,更优雅的解决方案。
我不认为这里有一次run_once动作吗?
还是最佳实践只是添加角色,然后多次使用add_cap()?即使那样,我仍然认为add_cap正在访问数据库。
仅考虑减少不必要的数据库访问的最佳方法。您的最佳做法是什么?
remove_role()
功能之前add_role()
帮助我。