Roles en WordPress, hazlo tú mismo

Cómo crear roles sin plugins en WP

Vamos al archivo functions.php de nuestra instalación de WordPress. Lo abrimos y agregamos esta función:

add_role( $rol, $nombre, $permisos )

$rol: Nombre del rol para uso interno a nivel de programación. Por ejemplo: gestor_crm
$nombre: Nombre visible del rol. Nos servirá para identificarlo en el backend. Por ejemplo: Gestor CRM
$permisos: Array de todos los permisos que queramos asignarle.

Aquí una lista de los más comunes:

‘edit_themes’ => Editar temas
‘activate_plugins’ => Activar /Desactivar plugins
‘edit_plugins’ => Editar el código de los plugins
‘edit_users’ => Editar permisos de usuarios
‘moderate_comments’ => Moderar comentarios
‘manage_categories’ => Crear/Editar categorías de post
‘edit_posts’ => Permite crear /editar entradas nuevas
‘edit_pages’ => Permite crear / editar páginas
Hay una lista completa de todos los permisos disponibles en el Codex de WordPress.
Así que, resumiendo, si queremos crear un rol que pueda editar posts, moderar comentarios, activar plugins, editar usuarios… la función sería:
add_role(
'gestor_crm',
__( 'Gestor CRM' ),
array(
'edit_themes' => true,
'activate_plugins' => true,
'edit_plugins' => true, 
'edit_users' => true,
'moderate_comments' => true,
'manage_categories' => true,
'edit_posts' => true,
'edit_pages' => true
)
);
Tras ello, y cuando nos aseguremos de que el nuevo rol aparece en Usuarios –> Añadir nuevo, podemos eliminar la función creada puesto que esa información se almacenará en la base de datos.