¿Te gustaría dar permisos a determinado grupo de usuarios y mantener el control de las opciones a las que puedan acceder?, puedes lograr esto usando Roles y Capacidades en WordPress.
¿Qué son los Roles?
Los Roles o Perfiles son simplemente grupos que definimos para organizar los usuarios de nuestro sitio, los roles no tienen jerarquía, por ejemplo el rol administrador, si bien por defecto puede tener todos los permisos de los otros roles, no significa que los herede, podemos hacer que el rol editor tenga permisos que no tenga el rol administrador.
Roles por defecto:
- Administrador: Tiene el control sobre todo el sitio
- Editor: Tiene permisos de publicación y edición de contenido de otros autores.
- Autor: Tiene permisos de creación y edición de su propio contenido.
- Colaborador: Puede crear contenido pero no puede publicarlo.
- Suscriptor: Tiene permiso limitado sólo para editar su perfil.
Para asignar un rol a un determinado usuario, puedes hacerlo desde la pantalla de edición o creación de usuarios.

2- ¿Qué son las Capacidades?
Las Capacidades o Capabilities, es un sistema de permisos aplicados sobre los roles. En realidad es a través de las capacidades en donde se define realmente que es lo que un usuario, a través de su rol, puede o no hacer en el sitio.
Asignación por defecto de capacidades por rol.
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
---|---|---|---|---|---|---|
create_sites | ||||||
delete_sites | ||||||
manage_network | ||||||
manage_sites | ||||||
manage_network_users | ||||||
manage_network_plugins | ||||||
manage_network_themes | ||||||
manage_network_options | ||||||
upload_plugins | ||||||
upload_themes | ||||||
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
activate_plugins | ** | |||||
create_users | * | |||||
delete_plugins | * | |||||
delete_themes | * | |||||
delete_users | * | |||||
edit_files | * | |||||
edit_plugins | * | |||||
edit_theme_options | ||||||
edit_themes | * | |||||
edit_users | * | |||||
export | ||||||
import | ||||||
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
install_plugins | * | |||||
install_themes | * | |||||
list_users | ||||||
manage_options | ||||||
promote_users | ||||||
remove_users | ||||||
switch_themes | ||||||
update_core | * | |||||
update_plugins | * | |||||
update_themes | * | |||||
edit_dashboard | ||||||
customize | ||||||
delete_site | ||||||
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
moderate_comments | ||||||
manage_categories | ||||||
manage_links | ||||||
edit_others_posts | ||||||
edit_pages | ||||||
edit_others_pages | ||||||
edit_published_pages | ||||||
publish_pages | ||||||
delete_pages | ||||||
delete_others_pages | ||||||
delete_published_pages | ||||||
delete_others_posts | ||||||
delete_private_posts | ||||||
edit_private_posts | ||||||
read_private_posts | ||||||
delete_private_pages | ||||||
edit_private_pages | ||||||
read_private_pages | ||||||
unfiltered_html | * | * | ||||
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
edit_published_posts | ||||||
upload_files | ||||||
publish_posts | ||||||
delete_published_posts | ||||||
edit_posts | ||||||
delete_posts | ||||||
Capability | Super Admin | Administrador | Editor | Autor | Colaborador | Suscriptor |
read |
3- Administrar Roles y Capacidades
Existen diferentes plugins con esta funcionalidad, en este artículo usaremos el plugin Members para crear capacidades y roles.
En un artículo anterior vimos cómo crear un Custom Post Type (CPT), cuando creamos este CPT dejamos las opciones de capacidades por defecto, sin embargo ahora vamos a crear un nuevo rol con sus respectivas capacidades para administrar el CPT de recetas.
3.1 Modificar el Custom Post Type Recetas
Primero cambiaremos las capacidades por defecto del Custom Post Type Recetas definiendo las capacidades personalizadas, tal como se ve en la siguiente imagen del servicio GenerateWP que usamos para la creación del CPT.

3.2 Crear el nuevo Rol y sus Capacidades
A través del plugin de Members, desde Usuarios > Perfiles, podemos clonar algún perfil y luego agregar las capacidades adicionales necesarias, tal como se muestra en la siguiente imagen.

3.3 Asignar el nuevo Rol a un usuario
Finalmente desde la pantalla de edición de algún usuario seleccionado, asignamos el nuevo rol creado.

¿Aún con dudas?, en el siguiente video se explica cómo crear y modificar roles y capacidades usando el plugin Members
Muy buen trabajo. Tienes dotes para la docencia. Sigue así. Me encantó el vídeo. Seguro que en una versión posterior, cuando te de tiempo puedes llevarlo un poco más lejos con taxonomías para ese admin recetas o gestor de recetas…
Que bueno que te sirvió, gracias por tu comentario, evaluaré tu sugerencia para un futuro artículo. Saludos.
Este sitio está genial, lo he agregado a mis favoritos. Muchas gracias y felicitaciones. Saludos
Gracias Joan, saludos igualmente 🙂
Felicitaciones jhon muy buen artículo. Qusiera saber si me se la url de una pagina de las que no se puede mostrar a un usuario determinado y la pongo el buscador aunque no este en ese user se muestra. Como puedo tratar esas exepciones es decir si una persona quiere acceder a una pagina a la cual su rol no esta autorizada me redireccione para el login Saludos y gracias de antemano .
Hola, con el rol y permiso configurado ya se controla el acceso por la url, no debería permitirte ver entradas a las cuales un rol no tiene acceso.
Para mí, eres el más, ojalá hubiese tenido un docente que explicara como tu.
Es posible tomar un rol (editor) y deshabilitarle la capacidad: Eliminar página?
Muchas gracias, me encantan todos tus videos y artículos
Hola, gracias Luis, con respecto a lo que comentas, si que es posible, prueba hacerlo con el plugin de Members. Saludos.
Amigos, ¿existe algún plugin que permita editar determinadas páginas a un rol determinado? Imagínense que los roles “vendedores” no puedan modificar las listas de precios. O por ejemplo, los editores no puedan cambiar algunas páginas creadas por el administrador, pero otras si.
Gracias
Hola, tal vez a través de plantillas de página, es decir tendrías que crear plantillas para cada página y antes de mostrar el contenido validar que ese rol lo puede ver, revisa: https://decodecms.com/plantillas-pagina-wordpress/