Ao adicionar uma função e recursos, você só precisa executar o código uma vez, pois as funções e os recursos são salvos no banco de dados ao usar add_role
ou ->add_cap
funções, assim como Andy disse que você pode usar after_setup_theme
para isso tipo de ação, mas adicione algum tipo de verificação para que seja executada apenas uma vez, como register_activation_hook ou usando opções:
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);
}
}