我将使用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.

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