我正在过滤map_meta_cap()函数,该函数从$ user-> has_cap(从current_user_can()称为)。我只希望当前用户是管理员时执行的过滤器,因此我需要在过滤器中有条件检查其角色。

我无法使用current_user_can(),因为这会调用我的过滤器,从而导致无限循环。

是否有可靠的方法可以检查某人是否是管理员而不使用current_user_can()?

有帮助吗?

解决方案

您可以检查 $current_user 变量以确定角色。

我相信,对于登录用户,初始化后应该是可见的(甚至可能是在init上),客人访问者显然没有与他或她相关的任何数据(因此将是空的/未设置的)。

你也可以打电话 get_currentuserinfo() 填充 $current_user var,但我个人在打电话时从未找到需要 $current_user 初始化之后(但我确定可能有需要调用它的情况,因此在下面链接以供参考)。

http://codex.wordpress.org/function_reference/get_currentuserinfo

许可以下: CC-BY-SA归因
scroll top