Gestión de Roles de Usuarios en WordPress: Editar y Publicar según Categoría

Cada vez es más común que existan web en los que hay múltiples autores: blogs, revistas periódicos… El problema con esto es que, si no marcamos ciertas pautas a estos autores cualquier podría editar o publicar artículos que no entran dentro de su campo de conocimiento. O que, por error, publiquen artículos con categorías que no le corresponden. Por suerte, y gracias a los roles de usuarios podemos limitar sus movimientos, y ahorrar errores en este tipo de webs.

Lo que queremos conseguir con el tutorial de hoy es que, asignando un determinado rol a un usuario, este solo pueda editar y publicar entradas que tengan una cierta categoría. Los pasos a dar son sencillos, pero vamos a describirlos para que nos sirvan de guía y no nos perdamos.

  • Crear un nuevo rol de usuario.
  • Asignar este rol a un usuario.
  • Crear la categoría de entrada (o usar una ya existente).
  • Asignar los permisos de edición y publicación del rol según la categoría.

Antes que nada, si no estáis familiarizados con los roles de usuarios, os recomendamos que echéis un vistazo al artículo que escribimos al respecto. En él, podréis ver para que sirven además de descubrir uno de los dos plugins que vamos a necesitar en este tutorial: PublishPress Capabilities. Este plugin nos facilitará tanto la creación de nuevos roles de usuarios. El otro plugin que vamos a usar es un hermano suyo, PublishPress Permissions. Por lo que, el primer paso antes de empezar será instalar estos dos complementos para WordPress. Una vez que estén instalados y activados, podemos empezar.

Creación de roles de usuarios personalizados

En primer lugar, lo que tenemos que hacer es, si no tenemos los roles de usuarios definidos, es crearlos. Para ellos, debemos pensar si queremos usar los predefinidos por WordPress (Editor, Autor, Colaborador), o crear usuarios personalizados. Recomendamos esto último, ya que no tocaremos los roles de usuario por defecto de WordPress y sus permisos. Haciendo uso del plugin PublishPress Capabilities que ya mencionamos en nuestro sobre usuarios en WordPress, crearemos nuestros roles de usuarios personalizados. Una vez tengamos instalado y activado este plugin, veremos una nueva sección en nuestro panel de administrador de WordPress llamada Capabilities. Entremos para ver que nos han añadido.

Lo primero que vemos nos puede impactar un poco, pero no nos desanimemos. En principio, fijémonos en la columna de la derecha, donde tenemos una sección llamada Select Role to View / Edit. Según el tipo de rol de usuario que tengamos activado aquí, cambiarán los checkboxes activados y desactivados de la ventana principal. Para cambiar de usuario, solo debemos seleccionarlo en el panel desplegable y pulsar en el botón Load.

Los usuarios que vamos a crear solo van a poder escribir y editar entradas de ciertas categorías, por lo que sus funciones estarán muy limitadas. Como ejemplo, queremos crear tres roles de usuarios, y cada uno puede editar y publicar entradas de una categoría diferente. En mi caso, serán estos tres:

  • Usuario Experto en Tecnología: solo podrá editar y publicar artículos bajo la categoría Tecnología.
  • Usuario Experto en Moda: solo podrá editar y publicar artículos bajo la categoría Moda.
  • Usuario Experto en Nutrición: solo podrá editar y publicar artículos bajo la categoría Nutrición.

Lo que vamos a hacer simplemente es hacer tres copias del rol de usuario por defecto Suscriptor, cada una con un nombre de usuario lo suficientemente descriptivo como para acordarnos de él. Elegimos este rol porque es el que menos permisos tiene. Así nos ahorramos que no pueda acceder a otras secciones que no queremos. Dentro de Capabilities, seleccionamos y cargamos el rol Suscriptor. Una vez hecho esto, nos vamos algo más abajo hasta Copy Suscriptor Role, y en su campo correspondiente escribimos Experto en Moda, y pulsamos en Copy. Y ya está, ya tenemos creado nuestro usuario Experto en Moda. Solo habrá que repetir para crear los dos otros usuarios, Experto en Tecnología y Experto en Nutrición.

creacion de rol de usuario dentro de PublishPress Capabilities

 

Si veis que no os crear cierto rol, es posible que sea porque estéis usando caracteres especiales como acentos. Probad a hacerlos sin esto para que no tengáis ningún tipo de error.

Aplica los roles a sus usuarios correspondientes

Una vez creados los roles, es hora de asignarlos a los usuarios de nuestra web. Desde el panel de administración de WordPress, nos vamos a Usuarios. Aquí está el listado completo de personas que pueden acceder a nuestra web mediante un usuario y contraseña. Vemos como cada una de ellas tiene un rol determinado. Esto es lo que vamos a modificar. Si pulsamos en editar bajo el avatar del usuario, nos iremos a una nueva ventana. Buscaremos su perfil, y seleccionamos el rol correspondiente de los que hemos creado anteriormente. Solo nos queda guardar los cambios. Ahora veremos como en la columna de rol tiene el rol que hemos creado para él. Haremos lo mismo para el resto de usuarios.

Crea las categorías de tus entradas

Una vez que hemos creado nuestros roles personalizados, y ya asignados a sus usuarios correspondientes, nos queda el paso más importante. Decir en que categoría de entrada tiene permitido un rol de usuario editar y publicar. Este paso es sencillo, solo tenemos que crear las categorías que van a tener las entradas. Si ya las tienes creadas, puedes saltar este paso. Como añadido, os recomendamos echar un vistazo a nuestro artículo sobre como optimizar las categorías WordPress para mejorar el SEO de nuestra web. Una excelente manera para optimizar y organizar el contenido de nuestra web.

Asigna los permisos a cada rol de usuario

El último paso que nos quedará por hacer es decidir que puede y no puede hacer cada usuario según el rol que le hayamos asignado. Y lo haremos gracias a las opciones que nos da el plugin PublishPress Permissions. Para ello, desde el panel de administración de WordPress, nos vamos a Permisions > Group. En la nueva ventana veremos todos los roles existentes dentro de nuestro WordPress. En nuestro caso, nos vamos a uno de los que hayamos creado y seleccionamos Editar. En la nueva ventana, dentro de la pestaña Set Specific Permissions seleccionamos Post (ya que estamos trabajando con categorías de entradas), y daremos permisos tanto para editar como para leer. Por ejemplo, para asignarle permisos de edición de entradas con la categoría Moda a los usuarios con rol Experto en Moda, tendríamos que seleccionar esto:

Simplemente tendremos que ir asignando estos permisos a cada uno de los roles de usuario que hemos creado, tanto para editar como para leer, bajo la opción Operations. Una vez tengamos esto realizado, ya hemos terminado nuestra tarea. Pero antes, comprobemos que verían estos usuarios en su panel de administración de WordPress.

Comprobación final

Como administrador de la web, he creado tres entradas diferentes. Cada una de ellas tiene asignada una de las categorías que hemos creado: Tecnología, Moda y Nutrición. Vería algo así:

panel de entradas WordPress con todas las entradas y su categorias

Ahora, voy a entrar como el usuario John Doe, al que le he asignado el rol Experto en Moda. Si como John Doe voy al apartado de Entradas dentro de WordPress, la imagen es un poco diferente.

panel de entradas en WordPress con usuario con categorias restringidas

John Doe, al asignarle el rol Experto en Moda, solo puede ver las entradas asignadas con esta categoría. Además de poder entrar en ellas para editarlas y publicarlas. El resto de entradas con otras categorías (o sin una categoría asignada), no puede ni siquiera verlas, ni por supuesto editarlas. Exactamente lo que íbamos buscando.

Como hemos visto, en pocos pasos podemos restringir las capacidades de edición y publicación que tienen los usuarios de un web. Esto es esencial cuando queremos que no se extralimiten de sus funciones, ni puedan editar entradas que no entran dentro de su campo de actuación. Esto nos va a ahorrar disgustos a largo plazo, o que puedan entrar en lugares que no deberían.

Esto era lo que os queríamos mostrar hoy. Esperamos que os haya servido de ayuda y, como siempre, tenéis abiertos los comentarios antes cualquier duda o sugerencia que nos queráis hacer.

Comentarios (5)

  1. Hola, es muy interesante tu artículo..¿pero cómo hacer para que ese usuario no solo tenga permiso para editar, si no también para crear entradas en esa categoría asignada?

    1. Hola Patri!

      En el artículo lo explicamos, ediante el plugin PublishPress Capabilities puedes crear roles personalizados y asignarles sus permisos. Y puedes hacer que sean tanto solo para editar, como para crear y editar. Solo tienes que marcar las casillas correspondientes dentro de la opción Capabilities.

      Espero que te sirva de ayuda!

  2. Hola Alfonso, he realizado todos los pasos, pero no logro que el usuario solo cree las entradas en la o las categoria que le pertenece.
    Es decir que no pueda crear entradas en otros categorias.
    Desde ya muchas gracias por tu aporte.

    1. Hola Pepe!

      Si tienes bien aplicado el rol al usuario correspondiente y ves que aun ese usuario puede crear entradas en cualquier categorías, solo te queda comprobar que el rol funciona correctamente. Sigue los pasos de la sección del artículo Asigna los permisos a cada rol de usuario, y asegúrate darle los permisos que quieras a la categoría correspondiente y guardar. Si está todo correcto y para asegurarnos, en el listado de tipos de usuario que hay en Permissions > Group, bajo la columna Permissions, en dicho usuario te debe de aparecer Edit Post (en este caso concreto que estamos hablando de entradas). Si haces clic ahí, verás las limitaciones que tiene dicho tipo de usuario que hemos designado antes.

      Espero que te sirva de ayuda. Un saludo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *