Plugins Preguntas frecuentes Guías Blog Soporte Contacto Ver los plugins

Cómo restringir contenido por rol de usuario en WordPress

Content GateActualizado el 30 de septiembre de 20267 min de lectura

Content Gate

Para restringir contenido por rol de usuario en WordPress, das a cada grupo de personas su propio rol (por ejemplo Cliente, Distribuidor o Personal) y después añades una regla, normalmente con un plugin, que indica qué roles pueden abrir qué páginas. WordPress no tiene ningún ajuste del tipo «solo este rol puede ver esta página»: sus opciones integradas son las páginas privadas, que solo pueden leer administradores y editores, y la protección con contraseña, que funciona con una única contraseña compartida.

Esta guía explica qué son los roles, qué puede y qué no puede hacer WordPress por sí solo, las opciones realistas con sus pros y sus contras, y un ejemplo paso a paso que puedes seguir en tu propia web.

Qué es un rol de usuario en WordPress

Cada cuenta de una web WordPress tiene un rol. El rol decide qué puede hacer esa persona en la administración: escribir entradas, publicarlas, editar el trabajo de otros, instalar plugins. WordPress incluye estos roles, descritos en la documentación oficial Roles and Capabilities (en inglés):

RolQué puede hacer
AdministradorTodo en un sitio individual: ajustes, plugins, temas, usuarios.
EditorPublicar y gestionar entradas y páginas, incluidas las de otros usuarios.
AutorPublicar y gestionar sus propias entradas.
ColaboradorEscribir sus propias entradas, pero no publicarlas.
SuscriptorSolo gestionar los datos de su propia cuenta.

Un sexto rol, Super administrador, solo existe en una red multisitio. Otros plugins añaden sus propios roles: WooCommerce, por ejemplo, da a los compradores de la tienda el rol Cliente. El rol que recibe una cuenta nueva se define en Ajustes > Generales, en Perfil por defecto para los nuevos usuarios (en la versión en español de WordPress, el rol se llama «perfil»).

Lo esencial: los roles controlan la administración, no las páginas públicas. Un Suscriptor con la sesión iniciada ve exactamente la misma página pública que un visitante sin cuenta. Para mostrar una página solo a algunos roles necesitas algo que compruebe el rol antes de enviar la página.

Qué puede hacer WordPress sin plugins

En el editor, el ajuste de visibilidad de una página o entrada ofrece tres opciones (consulta la documentación Content Visibility, en inglés):

  • Pública: todo el mundo puede verla.
  • Privada: oculta al público y en los listados de entradas. Solo pueden abrirla los usuarios con permiso para leer contenido privado, que por defecto son los Administradores y los Editores.
  • Protegida con contraseña: los visitantes ven el título y un campo de contraseña. Quien escribe la contraseña ve el contenido.

Ninguna de las dos últimas es una restricción por rol. Convertir a tus distribuidores en Editores solo para que lean una página privada también les permitiría editar y publicar contenido en tu web, y eso es un mal negocio. Una contraseña sirve para una página compartida durante poco tiempo, pero todos usan la misma contraseña, no sabes quién la ha usado y no puedes quitar el acceso a una persona sin cambiársela a todos.

Formas de restringir contenido por rol de usuario

Una vez claro que WordPress por sí solo no basta, tienes cuatro caminos realistas. Cuál te conviene depende de qué más necesitas.

OpciónSirve paraOjo con
Un plugin de gestión de roles con permisos de contenido (por ejemplo el plugin gratuito Members)Crear roles personalizados y elegir, entrada por entrada, qué roles pueden leer el contenido.Defines el acceso página por página. Comprueba cómo trata los listados, la búsqueda y lo que ven los visitantes bloqueados.
Un plugin de membresía completo (Paid Memberships Pro, MemberPress y similares)Vender el acceso: niveles, pagos, renovaciones, formularios de registro.Mucha más configuración de la que necesitas si nadie paga y ya conoces a tus usuarios.
Un plugin de restricción de contenido como Content GateReglas por rol para páginas, tipos de contenido, categorías, bloques sueltos y widgets, con un mensaje, una redirección u otra página para todos los demás.Las condiciones por rol son una función Pro. No crea roles.
Código a medida en el temaUn desarrollador que quiere control total sobre una plantilla.Necesita mantenimiento y es fácil que falle cuando cambia el tema.

Elijas lo que elijas, primero van los roles. Si los roles por defecto no describen tus grupos, crea otros nuevos con un editor de roles como los plugins Members o User Role Editor, ambos gratuitos en WordPress.org. Una buena costumbre es copiar el rol Suscriptor y cambiarle el nombre (Distribuidor, Revendedor, Personal): el nuevo rol no obtiene ningún poder extra en la administración, solo una etiqueta que tus reglas de restricción pueden comprobar.

Paso a paso: restringir una página a un solo rol

Este ejemplo usa Content Gate y sigue sus guías. El objetivo: una página de tarifas que solo pueden abrir los usuarios con el rol Distribuidor, mientras que todos los demás leen un mensaje breve.

1. Crea el rol y asígnalo

  1. Crea un rol Distribuidor con tu plugin editor de roles, como se ha explicado antes.
  2. Para una persona nueva, ve a Usuarios > Añadir usuario, rellena el nombre de usuario y el correo electrónico, elige Distribuidor en Perfil y haz clic en Añadir usuario. Marca Enviar aviso al usuario si debe recibir un correo sobre su cuenta.
  3. Para una cuenta existente, ábrela en Usuarios, cambia el Perfil y guarda.

2. Busca el ID de la página

Abre la página de tarifas para editarla y mira la barra de direcciones: en post.php?post=12&action=edit el ID es 12.

3. Escribe la regla

  1. Ve a Content Gate > Rules y haz clic en Add rule (o en Write the first rule si la lista está vacía).
  2. 1 Name it (ponle nombre): un nombre que solo verás tú, como Tarifas, solo distribuidores.
  3. 2 Who can see it (quién puede verlo): elige Only certain roles y marca Distribuidor. Eliges el grupo que mantiene el acceso, no el que quieres bloquear.
  4. 3 What it covers (qué cubre): escribe 12 en Single items, by ID.
  5. 4 What everyone else gets (qué reciben los demás): elige A message where the content was y escribe algo útil, por ejemplo cómo solicitar una cuenta de distribuidor.
  6. Comprueba que This rule is on está marcado y haz clic en Save rule.
Editor de reglas de Content Gate con Only certain roles seleccionado, los roles Reseller y Distributor marcados y dos ID de página en Single items, by ID
El editor de reglas: marca los roles que mantienen el acceso y después elige qué cubre la regla.

4. Compruébalo como visitante

Los administradores siempre lo ven todo, así que desde tu cuenta no cambia nada. Abre la página en una ventana privada del navegador y después inicia sesión en ella con una cuenta de prueba que tenga el rol Distribuidor y con otra que no lo tenga. El recorrido completo está en Escribe tu primera regla.

Excepciones, partes de una página y listados

Las webs reales rara vez se quedan en una sola página. Hay tres situaciones que se repiten una y otra vez.

Varias reglas sobre el mismo contenido

Content Gate lee las reglas de arriba abajo y decide la primera regla que cubre una página. Pon las reglas específicas encima de las generales: una regla «página 42 para Distribuidores» debe estar por encima de «todos los Productos para cualquiera con cuenta», porque si no, la regla general deja entrar a cualquier cliente. El orden y cada opción se explican en Cómo funcionan las reglas.

Solo una parte de la página

A menudo la página puede seguir siendo pública y solo los precios quedan reservados. Con Pro, cada bloque del editor de bloques tiene un panel Visibility: activa Restrict this block y elige Certain roles only. El bloque se quita en el servidor para todos los demás, no solo se oculta. En otros maquetadores, envuelve el texto con el shortcode, por ejemplo [content_gate who="roles" roles="distribuidor"]Precios netos...[/content_gate], usando el nombre interno del rol en minúsculas. Los detalles están en Restringir un solo bloque.

Títulos en listados y búsqueda

Bloquear una página no quita su título de los listados del blog, de las páginas de categoría ni de la búsqueda del sitio. Si incluso el título es confidencial, marca las opciones del paso 5 Outside the page itself (Pro), que además dejan el contenido fuera de la REST API.

Lo que no protegen las restricciones por rol

  • Los archivos subidos. Un PDF o una imagen de la biblioteca de medios conserva su propia dirección directa. Ocultar la página que lo enlaza no cierra esa dirección, y ningún plugin puede cerrarla desde dentro de WordPress. Para documentos privados, usa mejor un portal de archivos: mira cómo crear un portal de clientes con Dropbox.
  • Las personas que comparten su acceso. Una restricción por rol confía en la cuenta. Da a cada persona su propia cuenta para poder quitarle el acceso solo a ella.
  • Tu propia vista. Como administrador lo ves todo. Prueba siempre desde una ventana privada o con una cuenta de prueba.

La caché de páginas rara vez es un problema para las reglas por rol, porque los plugins de caché suelen servir copias guardadas solo a los visitantes que no han iniciado sesión. Si una regla parece no hacer nada, vacía la caché y comprueba que la regla está en On y que no lleva la etiqueta over the free limit.

Qué opción te conviene

Si solo hay una página en juego y el acceso es temporal, basta con una página protegida con contraseña. Si vendes el acceso con pagos y renovaciones, un plugin de membresía está hecho para eso. Si necesitas roles personalizados y no te importa definir el acceso entrada por entrada, un gestor de roles con permisos de contenido es una buena opción gratuita.

Si quieres restringir contenido por rol de usuario en toda la web, con reglas claras, excepciones, bloques sueltos y un mensaje o una redirección adecuados para todos los demás, Content Gate lo reúne en un formulario corto. Su versión gratuita ya cubre un área sencilla para usuarios con sesión iniciada (mira cómo crear un área privada); los roles forman parte de Pro, cuya licencia Business cuesta 29,90 € al año para 1 sitio, IVA incluido.

Preguntas frecuentes

¿Puedo restringir una página a un rol de usuario sin plugin?

No con los ajustes estándar. Las páginas privadas solo las leen administradores y editores, y la protección con contraseña usa una sola contraseña para todos. Mostrar una página a un rol concreto requiere un plugin o código a medida en el tema.

¿Cómo creo un rol de usuario personalizado en WordPress?

WordPress no tiene ninguna pantalla para crear roles. Instala un editor de roles como Members o User Role Editor, crea el nuevo rol (copiar el de Suscriptor es un punto de partida seguro) y después asígnalo a los usuarios desde la pantalla Usuarios.

¿Un Suscriptor ve más que un visitante sin cuenta?

En las páginas públicas, no. Un Suscriptor solo puede gestionar los datos de su propia cuenta en la administración. Ve contenido extra únicamente cuando un plugin o tu tema comprueban su rol o si ha iniciado sesión.

¿Los archivos de la biblioteca de medios quedan protegidos al restringir una página?

No. Los archivos subidos a la biblioteca de medios conservan una dirección directa que funciona para cualquiera que la tenga. Deja los archivos confidenciales fuera de la biblioteca de medios, por ejemplo en una carpeta privada de Dropbox o Google Drive compartida a través de un portal.