Cómo crear un rol de usuario personalizado en WordPress
Publicado: 2021-02-06Al crear un sitio web con un CMS, la flexibilidad siempre es bienvenida. Afortunadamente, WordPress tiene más que su parte, con temas y complementos que nos permiten crear una experiencia altamente personalizada.
Pero su flexibilidad va más allá de esas cosas adicionales que podemos instalar. En realidad, está integrado directamente en el núcleo del software.
La capacidad de crear roles de usuario personalizados es un ejemplo brillante. Hoy, veremos qué son, por qué querrías usarlos y algunas técnicas diferentes para crearlos.
Control de grano fino sobre los permisos de usuario
En cada instalación de WordPress, ya tiene acceso a una selección de roles de usuario predeterminados. Nos permiten designar lo que los usuarios pueden y no pueden hacer en el back-end (también conocido como Dashboard) del sitio web.
Esto tiene perfecto sentido. No todos los que administran contenido necesitan tener privilegios administrativos. Por lo tanto, podemos asignar a cada usuario un rol en función de la necesidad. Es una gran medida de seguridad y puede proteger mejor contra percances o incluso contra la instalación compulsiva de complementos.
Esto también funciona en la parte delantera también. Si solo desea que los usuarios registrados vean contenido específico, puede incorporar esta funcionalidad en su tema o agregarla a través de un complemento de membresía.
Pero si bien los roles de usuario predeterminados (Administrador, Editor, Autor, Colaborador y Suscriptor) son útiles, hay momentos en los que necesita ese control adicional. Es por eso que WordPress ofrece la posibilidad de crear sus propios roles personalizados.
Cuándo usar un rol personalizado
Un rol de usuario personalizado puede ser útil en varios escenarios. Estos son algunos de los más comunes que podría enfrentar:
Tiene usuarios que administran diferentes tipos de contenido
De forma predeterminada, WordPress viene con dos tipos clave de contenido público: publicaciones y páginas. Pero es fácil agregar más mediante el uso de tipos de publicaciones personalizadas. Por ejemplo, puede crear tipos de publicaciones para cosas como comunicados de prensa o miembros del personal. Además, varios complementos también pueden instalar sus propios tipos de publicaciones.
Las grandes organizaciones pueden tener varios tipos diferentes de contenido, con personas específicas en mente para administrar cada uno. En este caso, una función de usuario predeterminada no sería ideal, ya que podría brindar acceso a todo el lote (o lo contrario, según su configuración). Sin embargo, un rol personalizado permitiría que diferentes usuarios vean solo los tipos de publicaciones que les asigne.
Un usuario necesita hacer solo una cosa
Hay ocasiones en las que un usuario puede necesitar un nivel único de acceso a las funciones de su sitio web. Por ejemplo, supongamos que realiza un curso en línea. Es posible que tenga un miembro del equipo que necesite acceso a todo el curso en la parte delantera y trasera para garantizar que funcione correctamente y que el contenido sea preciso.
Si todo lo que este miembro del equipo necesita hacer es concentrarse en el curso en sí, una cuenta de administrador puede ser una exageración. Con un rol de usuario personalizado, pueden hacer su trabajo sin tener que pasar por opciones innecesarias.
Necesita "Subir de nivel" un rol existente
A veces, un rol de usuario de WordPress existente es casi perfecto. Pero tal vez exista algo adicional a lo que un usuario necesita acceder.
Asume el rol de Autor. De forma predeterminada, pueden publicar publicaciones, pero no páginas. Normalmente, tendría que subir al usuario al Editor. Eso podría estar bien en algunos casos. Sin embargo, podría haber otras capacidades incluidas a las que no desea que acceda este usuario en particular. Aquí, crear un rol personalizado puede ser la mejor opción.
Cómo crear un rol de usuario personalizado
Hay dos métodos diferentes para crear un rol de usuario de WordPress personalizado. La primera es agregando algo de código a un complemento personalizado o al archivo functions.php
de su tema. La segunda es instalando uno de los muchos complementos disponibles que le permiten crear y editar roles.
El método que utilice realmente depende de la preferencia personal. Si desea tener la capacidad de seleccionar y elegir las capacidades del usuario de manera visual, un complemento tiene más sentido. Pero si se siente cómodo con el código y/o no quiere que otros administradores jueguen con la configuración, agregar un fragmento puede ser para usted.
De cualquier manera, lo ayudaremos a comenzar con algunos ejemplos de código y también con una selección de complementos.
Primero, se recomienda que estudie las diversas capacidades de usuario que ofrece WordPress. También tenga en cuenta que los tipos de publicaciones personalizadas también pueden tener sus capacidades personalizadas. Esto puede ser útil en el primer escenario de ejemplo que mencionamos anteriormente.
Método #1: agregar un fragmento de código
En este ejemplo, vamos a crear un rol de usuario llamado "Miembro del personal". Esto incluye todas las capacidades del rol de autor, pero con la capacidad adicional de editar y publicar páginas.
Cada capacidad que estamos asignando al rol se enumera en el fragmento a continuación y se establece en " verdadero ". La excepción aquí es que no queremos que los usuarios con este rol eliminen las páginas publicadas, por lo que lo configuramos explícitamente como " falso ", solo para estar seguros.
Nuevamente, este código entraría en el archivo functions.php
de su tema o, opcionalmente, en un complemento personalizado.
/* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );
Una vez que hayamos guardado este código y actualizado nuestro sitio web en el navegador, podemos agregar un nuevo usuario con este rol.
Cuando nuestro usuario con el rol de miembro del personal inicia sesión, puede ver tanto las páginas como las publicaciones.
Otra alternativa sería simplemente agregar algunas capacidades al rol de autor existente. Podemos hacer esto a través de la función add_cap()
:
/* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');
Ambos fragmentos de código esencialmente hacen lo mismo. Sin embargo, agregar el nuevo rol de miembro del personal podría ser mejor en los casos en que ya tenga usuarios con el rol de autor y no desee que tengan capacidades adicionales.
Método 2: usar un complemento
La funcionalidad anterior se puede replicar fácilmente mediante el uso de un complemento. Se han creado varios para este tipo de rol de usuario y administración de capacidades. Ofrecen la ventaja de que utilizan una GUI y agregan una capa de conveniencia a todo el proceso.
Echemos un vistazo a algunas de las opciones más populares:
Editor de roles de usuario
Con User Role Editor, agregar o eliminar capacidades para un rol es tan simple como marcar o desmarcar una casilla en la configuración. También tiene la capacidad de crear sus propios roles de usuario personalizados y establecer las capacidades que sean necesarias. El complemento también admite instalaciones multisitio de WordPress.
Editor de roles de usuario de WPFront
WPFront User Role Editor ofrece capacidades similares, permitiéndole agregar o editar roles de usuario. Pero también permite a los administradores migrar usuarios de un rol a otro y asignar múltiples roles a usuarios individuales.
Administrador de acceso avanzado
Si está buscando algo con un alcance más amplio, Advanced Access Manager puede ser una buena opción para usted. Ofrece gestión de funciones y capacidades, además de la capacidad de controlar el acceso a las funciones de frontend y backend, como menús y widgets.
Conozca sus roles
La capacidad de crear roles de usuario personalizados es solo una razón más para amar WordPress. Es algo muy especializado, pero puede ser extremadamente útil cuando necesita algo que va más allá de los roles predeterminados.
Por lo tanto, la próxima vez que se encuentre en una situación en la que se necesite el control de las capacidades del usuario, sepa que tiene esta poderosa herramienta a su disposición.