Plugins para controlar la visibilidad de Widgets y menús en WordPress

Si existe una parte muy importante al crear un sitio de membresía o una escuela con WordPress, es ajustar la visibilidad de los menús, sus elementos y de los Widgets en barras laterales u otras áreas.

La necesidad de controlar qué ven unos y otros usuarios dependiendo de si están identificados o no en la plataforma, es un aspecto que debes de tener en cuenta para mejorar la experiencia del usuario al interactuar en tu sitio web. Especialmente, cuando combinas una academia online con un blog de marca.

Importante Lo que debes tener en cuenta es que tendrás que elegir entre una solución u otra. Generalmente los plugins utilizan las mismas funciones del core de WordPress para modificar las características de los menús, por lo que podrían entrar en conflicto y desencadenar fallos técnicos.

Existen varias vías para llevar a cabo este tipo de tareas. En este post vamos a abordar las diferentes posibilidades que existen:

Visibilidad de los menús y sus elementos

Conditional menus

Con el plugin Conditional Menus para WordPress, podrás elegir las condiciones de visiblidad de los diferentes menús soportados por el tema que tengas instalado en base a una gran cantidad de factores nativos del core.

Una vez instalado y activado, podrás encontrarlo en Personalizar > Menús > Gestionar ubicaciones. Lógicamente, tendrás que tener creado al menos un menú para definir sus condiciones.

Algunas de sus muchas opciones son mostrar u ocultar dependiendo de si el usuario está identificado, si está en la home, página de búsqueda, página 404, diferentes páginas de archivo, categorías, etiquetas y hasta roles de usuario.

If menu, Controlador de visibilidad para elementos de menu

If menu dispone de una versión gratuita y también, de una versión de pago llamada “More visibility rules” que amplía las opciones de visibilidad de la versión libre por tan solo un pago único de 20$ para siempre. Este plugin está especialmente diseñado para gestionar la visibilidad de los elementos de menu y es muy potente. Te detallo a continuación todas las posibles combinaciones:

Ejemplo de uso de IF MENU: Mostrar elemento si el usuario es administrador y está en la portada.
  • Reglas simples de visibilidad
    • Si el usuario está logueado.
    • Dependiendo del rol del usuario.
    • Por tipo de página: Home, Post simple o página simple.
    • Si es página de archivoIs Archive page (year, category, search results, etc)
    • Visitor device Is Mobile
  • Reglas avanzadas de visibilidad (Versión de pago)
    • Según país del visitante.
    • Lenguaje del visitante.
    • CompatibilidadPlugin Suscripciones WooCommerce – visibilidad condicional de las suscripciones activas.
    • Compatibilidad Membresías WooCommerce – visibilidad condicional dependiendo de las membresías activas.
    • Grupos – Detecta si el usuario está en un grupo específico.
    • Compatibilidad WishList Member – Detecta niveles de membresía de usuario.
    • Restrict Content Pro – Detecta niveles de suscripcion del usuario.
    • Aunque no indicada en el manual, es compatible con Reglas y membresías de MemberPress.
  • Reglas múltiples – mezclar reglas para la visibilidad de elementos de menú.
    • Motras solo si el usuario está identificado Y su dispositivo es móvil.
    • Mostrar si el usuario es Administrador Y es la página frontal.
  • Soporte para reglas personalizadas.

Con más de 70.000 instalaciones activas, para nosotros este plugin es uno de nuestros ganadores por su sencillez de uso y la efectividad. Tanto en su versión gratis como de pago.

User Menus – Nav Menu Visibility

Con más de 50k instalaciones activas, User Menus – Nav Menu Visibility es una muy buena solución gratuita que, si no fuese por tener instalado Freemius – plugin de monetización y analítica – no pesaría más de 100kb; sin embargo, esto dispara su peso a 3.6Mb. Aún así, su facilidad de uso lo convierten en un potente aliado. Si no quieres enviar tus datos a freemius, sólo tienes que darle a “Saltar” cuando te aparezca el cuadro de diálogo tras la instalación.

Freemius y los “permisos adicionales sin importancia”…

Las opciones disponibles son las siguientes:

  • Mostrar los elementos del menú a todo el mundo.
  • Mostrar los elementos del menú sólo a los usuarios que hayan cerrado la sesión.
  • Mostrar los elementos del menú para que sólo los usuarios conectados.
  • Mostrar el elemento de menú a los usuarios con o sin una función de usuario específica.
  • Mostrar el {avatar} de un usuario conectado en un elemento del menú con la opción de tamaño personalizado.
  • Mostrar el {nombre de usuario} de un usuario conectado en un elemento del menú.
  • Mostrar el {nombre_del_usuario} de un usuario conectado en un elemento del menú.
  • Mostrar el {apellido_nombre} de un usuario conectado en un elemento del menú.
  • Mostrar el {nombre_de_la_pantalla} de un usuario conectado en un elemento del menú.
  • Mostrar el apodo de un usuario conectado} en un elemento del menú.
  • Mostrar el {correo electrónico} de un usuario conectado en un elemento del menú.
  • Agregar un enlace de cierre de sesión al menú (configuración de redireccionamiento opcional).
  • Añadir un enlace de registro al menú (configuración de redireccionamiento opcional).
  • Añadir un enlace de acceso al menú (configuración de redireccionamiento opcional).

Una vez instalado y activado, podrás encontrarlo en Personalizar > Menú en cada uno de los elementos del menú que estés creando.

A la izquierda podrás localizar un cuadro para insertar enlaces de login / Logout o registro – si lo tienes activo – que incluso te permitirá la posibilidad de añadir nombre de usuario o el gravatar a un elemento de menu. Y a la derecha, dentro de cada elemento, el cuadro donde configurarás la visibilidad del enlace: según usuarios conectado o no y basado en los roles de usuario.

Opciones de User Menus – Nav Menu Visibility

Un plugin simple aunque potente cuando no necesitas proteger elementos de menu basados en categorías, etiquetas o determinadas páginas.

Menu Item Visibility Control (Nivel intermedio/avanzado)

Menu Item Visibility Control es, como su nombre indica en inglés, un gestor de visibilidad para elementos de menu en WordPress. Quizá el plugin más versátil y potente de todos para mostrar u ocultar elementos de menu. ¡Además, con el increíble peso de 6kb!

¿Cuál es su único PERO? Pues que tendrás que tener alguna base esencial de programación en PHP y WordPress para configurarlo sin errores. Te permite utilizar las etiquetas condicionales de WordPress para añadirlas a cada elemento de menú. En el enlace anterior tienes un listado completo de las infinitas posibilidades que ofrece.

En la siguiente captura, te mostraré un sencillo ejemplo: cómo mostrar un elemento de menu sólo para los usuarios que han accedido al escritorio WordPress independientemente del rol que tengan:

Mostrar elemento de menú si el usuario está identificado

¿Querrías que fuese al revés? Tendrías que añadir un operador lógico (!) para invertir el resultado quedando de la siguiente forma:

!is_user_logged_in()

Además, podrías añadir combinaciones de operadores. Otro ejemplo:

is_user_logged_in() && is_category( 'membresias-online' ) 

El significado es: mostrar este elemento de menú si el usuario está identificado Y se encuentra en la categoría “membresias-online”.

Como puedes ver, las posibilidades para controlar la visibilidad de los emementos de menú se vuelven tan potentes, complejas y amplias como funciones disponibles tenga WordPress para controlar la visibilidad de los elementos. Que sumado a los operadores lógicos, te harán explotar la cabeza.

Widgets condicionales y visibilidad

Widget Logic

Widget Logic es otro ganador en nuestra lista de plugins de WordPress. Con más de 200k instalaciones activas y un peso de 28kb, se convierte en un aliado estratégico a la hora ajustar la visibilidad de widgets en base a determinadas condiciones.

Funciona exactamente de la misma forma que el plugin anterior: mediante etiquetas condicionales del core de WordPress.

Es una solución ideal cuando, por ejemplo, dispones de una escuela online en el mismo sitio web hecho con WordPress y la barra lateral del blog u otras páginas se convierte en una fiesta de Widgets. Gracias a esta opción, por ejemplo, podrás hacer que determinados Widgets solo aparezcan cuando los usuarios no estén identificados en la plataforma. Y sería, por ejemplo, del siguiente modo:

Mostrar un Widget solo a los usuarios no autentificados.

Aunque no ha sido actualizado desde hace un año y verás un mensaje de que no es compatible con la última versión de WordPress, a día de hoy, todavía funciona perfectamente sin problemas.

Disclaimer: ten cuidado con los plugins no actualizados con frecuencia. Pueden ser un agujero en tu sitio web. Instala bajo tu responsabilidad.

Mediante CSS (no recomendable)

Ocultar elementos a los usuarios si están identificados o no, es posible en WordPress. Pero debes saber una cosa: Si alguien investiga el código, podría dar con los enlaces que intentas ocultar.

Lo más importante es que esa url, aunque la pudiesen encontrar a través del código html, estuviese protegida. Por ejemplo, mediante un plugin de membresía o protección de contenidos para usuarios registrados.

El funcionamiento es muy sencillo: cuando un usuario está identificado en WordPress, en la etiqueta body se añade una clase “logged-in” que puedes ver aquí:

Clase logged-in añadida a la etiqueta body de WordPress cuando estás logueado.

Por ejemplo: si queremos ocultar un elemento de menu cuando el usuario esté logueado.

Lo haríamos de la siguiente forma:

.logged-in #menu-item-83 { display:none }

Y por tanto, también podrías hacerlo a la inversa.

Para hacer un apaño temporal, quizá. Seguramente sería más práctico en otros casos pero no para trabajar con la visiblidad de widgets, menus o elementos de menu pues como te dije al principio, es poco seguro.

Conclusiones y ganadores

En Mundo Funnel lo tenemos claro: cuanto menos plugins, mejor. Y cuanto más ligeros y conexiones externas, pues también. Dicho esto, nos quedamos con los siguientes:

  • Para menus condicionales completos, Conditional Menu.
  • Para elementos de menú condicionales, Menu Item Visibility Control.
  • Para Widget condicionales, Widget Logic.

¿Y tú, con cuál te quedas? ¿Tienes alguna otra opción que te gustaría que sumemos a nuestra comparativa? Te esperamos en los comentarios 🙂

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (3 votos, promedio: 5,00 de 5)

Hola, me llamo Ángel Cano y tengo casi 20 años de experiencia en el universo digital, de los que casí 10 he dedicado directa o indirectamente a WordPress. En los últimos 5 años me he especializado en Escuelas online, membresías y comunidades online.


1 comentario en «Plugins para controlar la visibilidad de Widgets y menús en WordPress»

Deja un comentario

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.

Responsable del fichero: Mundo Funnel. Finalidad: Gestionar tu alta a esta suscripción y enviar publicaciones así como alguna oferta de productos o servicios propios y de terceros. La Legitimación: tu consentimiento. Destinatarios: tus datos se encuentran alojados en mi plataforma de email marketing ActiveCampaign (nuestro proveedor de email marketing) a través de su empresa ActiveCampaign, LLC., ubicada en EEUU y que se acoge al acuerdo de seguridad EU-US privacy (Ver política de privacidad de ActiveCampaign). Podrás ejercer Tus Derechos de Acceso, Rectificación, Limitación o Suprimir tus datos enviando un email a hola@mundofunnel.pro o ante la Autoridad de Control. Encontrarás más información en nuestra Política de privacidad.