我的wordpress站点中有以下PHP代码。我注意到,当我禁用以下代码时,对于当前用户和新用户,这两个用户角色仍然存在。
/* ------------------------------ ADD NEW CUSTOM ROLES ------------------------------ */
add_role(\'barber\',_(\'Barber\'),array(\'read\' => true, \'edit_posts\' => true));
add_role(\'barber_shop\',_(\'Barber Shop\'),array(\'read\' => true, \'edit_posts\' => true));
/* ---------------------------------------------------------------------------------- */
我的问题是,我是否需要调用此代码一次,还是应该始终保持其运行?将来会不会出现问题?
最合适的回答,由SO网友:Howdy_McGee 整理而成
通常,您可以在plugin activation hook 或者至少,init
. 您可能遇到的问题是,如果此代码在任何特定的WordPress挂钩之外,那么调用此代码太早,这可能会导致问题。尽管如此,add_role()
呼叫WP_Roles::add_role()
它首先要做的事情之一是检查它是否已经通过以下方式定义:
if( empty( $role ) || isset( $this->roles[ $role ] ) ) {
return;
}
WordPress将角色保存在选项表中,并在实例化时获取这些角色。如果角色已经设定好了,只会很早就回来,没有伤害,没有犯规。