Question

Je vais utiliser add_role () et $ de rôle> add_cap () pour mettre en place un nouveau rôle personnalisé et joindre une nouvelle capacité à des rôles existants.

Je me demande où le meilleur endroit pour ce faire est? Il est évident que je peux le faire functions.php directement à l'intérieur et être fait avec elle. Mais est-ce la meilleure pratique? Est-ce que je ne dois le faire sur admin_init? ou dois-je faire sur initialisation?

Je ne suis pas tout à fait sûr de ce que les meilleures pratiques sont autour de l'utilisation des crochets d'action init plutôt que de simplement laisser tomber un appel de fonction directe à l'intérieur functions.php.

Merci pour vos commentaires!

Était-ce utile?

La solution

Lors de l'ajout d'un rôle et les capacités que vous ne devez exécuter le code une fois puisque les rôles et les capacités sont enregistrées dans la base de données lors de l'utilisation des fonctions de add_role ou ->add_cap donc comme Andy a dit que vous pouvez utiliser after_setup_theme pour ce genre d'action, mais ajouter un peu sorte de chèque pour qu'il fonctionne qu'une seule fois, comme register_activation_hook ou en utilisant les options:

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);
    }
}

Autres conseils

Pour les plugins, je l'ai eu du succès en utilisant plugins_loaded pour cela. Pour les thèmes, je voudrais utiliser after_setup_theme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top