添加角色和能力时,我应该采取什么行动?
-
16-10-2019 - |
题
我将使用add_role()和$ coole-> add_cap()来设置新的自定义角色,并将新功能附加到现有角色。
我想知道最好的地方在哪里?显然,我可以直接在function.php中进行操作,然后完成。但这是最好的做法吗?我只需要在Admin_init上执行此操作吗?还是我应该在初始化?
我不完全确定使用Init Action Hooks的最佳实践是什么,而不仅仅是在functions.php中删除直接函数调用。
感谢您的输入!
解决方案
添加角色和功能时,您只需要运行一次代码,因为使用时的角色和功能将保存到数据库中 add_role
或者 ->add_cap
功能如此,就像安迪说你可以使用一样 after_setup_theme
对于此类操作,但添加某种检查,所以它只能运行一次,例如 register_activation_hook 或使用选项:
add_action('after_setup_theme','my_add_role_function');
function my_add_role_function(){
$roles_set = get_option('my_roles_are_set');
if(!$roles_set){
add_role('my_role', 'my_roleUser', array(
'read' => true, // True allows that capability, False specifically removes it.
'edit_posts' => true,
'delete_posts' => true,
'upload_files' => true
));
update_option('my_roles_are_set',true);
}
}
其他提示
对于插件,我成功使用了 plugins_loaded
为了这。对于主题,我会使用 after_setup_theme
.