Los roles de WordPress y capacidades de un usuario WordPress son los accesos y permisos que otorgamos a los usuarios de nuestro sitio web para que tengan mayor o menor capacidad de acción dentro de nuestra web.
Si tenemos varios usuarios en nuestra web sería importante conocer cómo funcionan los roles en WordPress y qué capacidades otorga cada uno para saber realmente qué puede hacer un usuario y que no en un momento dado.
Ante todo, tenemos que velar por la seguridad de nuestro WordPress y si a nuestra web acceden varios usuarios, debemos tener controlado qué accesos tienen.
También te puede interesar:
¿Qué es Elementor? Todo sobre Elementor Page Builder
¿Qué es Divi? Guía de Divi Theme para WordPress
Cómo eliminar un rol de WordPress
Cómo configurar Yoast SEO en WordPress
Ventajas de los Page Builder en WordPress
Qué plugins y themes usa una web echa con WordPress
Reparar un SAI Cyber Power Value 800ELCD
Tabla de contenidos
Definición de WordPress roles and capabilities
Tenemos 5 Roles WordPress definidos por defecto y que podemos utilizar para plantear nuestra agencia de redacción de artículos de nuestro blog.
- Super Admin: Si tenemos un red de blogs (wordpress multisite), sería el administrador de la red.
- Administrador: Tiene acceso a todo. Puede desde publicar entradas, hasta gestionar los plugins, themes, la configuración de los menús y sidebar, etc. Puede hacer cualquier cosa.
- Editor: Con el editor rol wordpress podemos publicar y editar entradas propias y de otros usuarios.
- Autor: Sólo puede publicar y editar sus propias entradas.
- Colaborador: Solo puede editar entradas pero no puede publicar.
- Suscriptor: Solo puede entrar en su página de perfil.
Dentro de cada rol se especifican las capacidades que tiene cada uno y que puede ejercer dentro de nuestro sitio wordpress. Ejemplos de capacidades de un rol WordPress:
→ Publicar: publish_post
→ Moderar comentarios: moderate_comments
→ Editar usuarios: edit_users
Estos roles, con estas capacidades, se asignan en la creación del usuario.
Por defecto se asigna el rol suscriptor, ya que es el que menos permisos tiene. Pero eso lo podemos cambiar en las preferencias de nuestro sitio y que sea otro el que se asigne por defecto en la creación de nuestros usuarios.
En esta captura veis dos que seguramente no tendréis, que son el SEO Editor y el SEO Manager. Eso es porque tengo instalada la plantilla Divi y me permite gestionar esos dos roles para controlar el acceso a ciertas partes de Divi.
Si queréis saber cómo crear un nuevo rol en wordpress mediante código os explico más adelante.
10 Plugins para gestionar los roles y capacidades de WordPress
Estos son algunos plugins que podéis encontrar en el repositorio de WordPress para poder gestionar y sacarle mayor partido a los accesos y capacidades de un usuario WordPress.
Con estos roles wordpress plugins lo que conseguireis es crear roles wordpress, editar roles wordpress, y modificar las capacidades asignadas a un rol de WordPress entre otras muchas funcionalidades adicionales que incorporan algunos de ellos.
WPFront User Role Editor

Descarga Gratis: https://es.wordpress.org/plugins/wpfront-user-role-editor/
Descarga PRO: https://wpfront.com/user-role-editor-pro/
Multiple Roles

Descarga Gratis: https://es.wordpress.org/plugins/multiple-roles/
User Roles and Capabilities

Descarga: https://es.wordpress.org/plugins/user-roles-and-capabilities/
User Role Editor

Descarga Gratis: https://es.wordpress.org/plugins/user-role-editor/
Descarga PRO: https://www.role-editor.com/
Members

Descarga Gratis: https://wordpress.org/plugins/members/
New User Approve

Descarga Gratis: https://wordpress.org/plugins/new-user-approve/
Advanced Access Manager

Descarga Gratis: https://wordpress.org/plugins/advanced-access-manager/
Extensiones de pago: https://aamplugin.com/
User Access Manager

Página de configuración de UAM para crear grupos de usuarios.
Listado de páginas y los permisos que hemos otorgado:
Dar permisos desde una página:
Descarga Gratis: https://es.wordpress.org/plugins/user-access-manager/
Editor Menu and Widget Access

Descarga Gratis: https://es.wordpress.org/plugins/editor-menu-and-widget-access/
Divi Roles

Desde el panel de opciones de Divi podemos definir las capacidades a los roles: administrador, editor, autor, colaborador, SEO Manager y SEO Editor. Estos últimos, son roles específicos de divi que nos permiten diferenciar entre dos roles para usuarios que nos vayan a gestionar el SEO de nuestro WordPress.
Descargar: https://www.javierrguez.com/recomienda/divi/
Códigos de ejemplo para trabajar con Roles WordPress
Ahora os daré algunas indicaciones básicas sobre cómo podemos trabajar con los roles wordpress haciendo uso de la API de WordPress.
Son trozos de código pequeños que podemos aplicar en nuestro plugin de funciones para dotar a nuestro WordPress de mayor funcionalidad.
Veréis que con pequeños trozos de código podemos hacer grandes cosas y os servirá de inspiración para que inventéis vosotros mismos nuevas funcionalidades.
Asignar capacidades a un usuario mediante la API de WordPress
Mediante código podemos asignar capacidades a un usuario wordpress mediante la API de WordPress. Esto es útil para realizar tus plugins personalizados y asignar roles a un usuario WordPress.
Lo que os muestro a continuación es un ejemplo de una función para asignar capacidades a un usuario concreto. Supongamos que tenemos un usuario con perfil Suscriptor, que es el rol más restrictivo que tiene WordPress. Y ahora queremos que este usuario tenga permisos especiales para poder dar de alta usuarios y poder gestionarlos. Para hacer eso, podemos usar la siguiente función que funciona de la siguiente manera.
Si un usuario se loga en nuestro sistema, la función se ejecutará automáticamente y le otorgará permisos especiales para poder gestionar usuarios.
// Función para añadir capacidades al usuario conectado que no corresponden a su rol por defecto.
function add_caps_user() {
$user = new WP_User( get_current_user_id() );
$user->add_cap( 'edit_users' );
$user->add_cap( 'delete_users' );
$user->add_cap( 'list_users' );
$user->add_cap( 'create_users' );
}
add_action( 'admin_init', 'add_caps_user');
Cómo saber el rol de un usuario WordPress
También podemos crear funciones personalizadas en función del rol de un usuario wordpress. Para obtener el rol de un usuario conectado tenemos que hacer lo siguiente. Lo ideal es que existiera una función que fuera get user role name que nos diera el nombre de los roles, pero no es así. Para saber los roles debemos obtener primero la información del usuario wordpress y después leer la propiedad roles como podemos ver en el siguiente ejemplo obtenido del Codex WordPress:
<?php $user_info = get_userdata(1); echo 'Username: ' . $user_info->user_login . "\n";
echo 'User roles: ' . implode(', ', $user_info->roles) . "\n";
echo 'User ID: ' . $user_info->ID . "\n";
?>
Esto nos dará como resultado:
Username: admin
User roles: administrator
User ID: 1
Y nos podrá servir como base para hacer cualquier tratamiento que necesitemos.
¿Cómo crear un rol de WordPress mediante la API?
Ahora os voy a dejar un ejemplo de cómo podemos crear un role en WordPress. Esto es aplicable si tenemos WooCommerce instalado, ya que el customer role es un rol de WooCommerce.
El siguiente código se ejecuta cuando entramos en WordPress y crea directamente el un rol nuevo que en mi caso lo llamé Distribuidor.
// Crea el rol de usuario "Cliente Distribuidor": add_role wordpress
add_action( 'init', 'crea_rol_distribuidor' );
function crea_rol_distribuidor(){
$customer_role = get_role( 'customer' );
add_role( 'cliente_distribuidor', __( 'Cliente Distribuidor' ), $customer_role->capabilities );
}
La idea de crear este rol era para poder asignarlo manualmente a los clientes que se hicieran hacer distribuidores de mis productos previa entrega de la documentación necesaria. En cuanto cumplieran todos los requisitos, le asignaría manualmente este rol nuevo, y en al zona de la tienda le mostraría los productos con un descuento por ser distribuidor.
Más información en el Codex de WordPress
En la documentación de la API de WordPress podéis encontrar más información y ejemplos:
https://codex.wordpress.org/Plugin_API
Os recomiendo la lectura de los actions y filters. Son muy útiles para personalizar nuestros plugins y personalizar nuestra web.
Así, resumidamente, os explico para qué es cada uno:
Acciones / actions: son para añadir funcionalidades nuevas, como la que os he puesto de ejemplo antes.
Filtros / filters: un filtro lo que hace es filtrar. Es hacer pasar pasar algo por un filtro y modificarlo para que podáis entenderlo. Por ejemplo, podemos pasar por el filtro el texto de un artículo de WordPress y añadirle un prefijo o un sufijo, poner todo el texto en negrita, o todo en mayúsculas, etc. Es un ejemplo. Pero puedes cambiar lo que desees.
Se pueden hacer cosas muy curiosas como la que explico en este artículo: Modificar las banderas de Polylang
https://www.javierrguez.com/cambiar-las-banderas-polylang/
Conclusiones
Como habéis podido ver, os he hecho un repaso de los principales plugins que permiten la gestión de roles wordpress y sus capacidades así como herramientas y mecanismos para crear nuestros propios plugins para hacer lo que necesitemos a nuestro gusto sin necesidad de tener que recurrir a plugins de terceros.
Espero que os sean de utilidad y podáis comenzar con el desarrollo de vuestros plugins y crear vuestras propias funciones.

















¡Hola! Soy Javier. Soy informático y me gusta documentar todo lo que aprendo. En mi blog te enseño todo lo que sé y cómo puedes aprender a crear tu propia web, mejorar el SEO y aplicar técnicas de Marketing Digital para conseguir mayor visibilidad. Suscríbete para no perderte ninguna de mis guías sobre WordPress, posicionamiento SEO o Marketing Digital.

Busco un plugin en donde se pueda poner la imagen con sello de agua y que al ingresar a ver su ficha o pagina, se puedan ver todas las imágenes sin el sello.
La idea es tener acceso para ver las todas fotos, quizá también creando roles
Me ayudan por favor
No sé si eso será posible, porque necesitarías dos imágenes, una con marca de agua y otra sin la marca. Y tendría que cargar una u otra... Un saludo.