WordPress Hosting

control visibilidad widgets wordpress

Widgets condicionales en WordPress: visibilidad por página y programación por fecha y horario

WordPress tiene muchas cosas buenas, pero también carencias que chirrían y una de ellas es que no puedes decidir dónde se muestra cada widget. Los pones en una barra lateral o en el pie de página y aparecen en todas partes, sin filtro, sin control.

¿Y si quieres mostrar un banner solo en la portada? ¿O un anuncio únicamente en ciertas categorías? ¿O una oferta que solo aparezca durante el Black Friday? Pues WordPress, de serie, no te deja.

Vamos a ver cómo solucionar esto para poder controlar totalmente la visibilidad y programación de widgets, y lo vamos a solucionar muy rápido, y gratis.

Por qué necesitas controlar dónde aparecen tus widgets

Piensa en tu web como en una tienda física. ¿A que no pones el mismo cartel en todas las secciones?. En la zona de ofertas pones promociones, en la entrada información general, en cada pasillo lo que corresponde.

Con los widgets pasa igual. Mostrar lo mismo en todas las páginas es desperdiciar espacio y, peor aún, molestar al visitante con contenido que no le interesa.

Algunas situaciones donde el control de visibilidad es prácticamente imprescindible:

  • Anuncios segmentados: Un anunciante te contrata un banner para que aparezca solo en posts de tecnología. Sin control de visibilidad, o lo pones en todas partes o no lo pones.
  • Contenido para usuarios registrados: Quieres mostrar un widget con recursos exclusivos solo a quien ha iniciado sesión.
  • Llamadas a la acción específicas: En la página de servicios quieres un formulario de contacto, pero en el blog prefieres un widget de suscripción.
  • Limpieza visual: La portada necesita menos distracciones que las páginas internas.

Programar widgets: el arma secreta para promociones

Además de decidir dónde se muestra un widget, poder programar cuándo aparece abre posibilidades que van más allá de lo decorativo:

  • Ofertas por tiempo limitado: Configuras un banner de descuento que aparece del 1 al 7 de diciembre y luego desaparece solo.
  • Banners estacionales: El widget de Navidad se activa en diciembre y se oculta en enero sin que tengas que acordarte.
  • Anuncios contratados por periodo: Un cliente te paga por mostrar su publicidad durante un mes. Lo programas y te olvidas.
  • Lanzamientos y eventos: Promocionas un webinar que empieza a mostrarse una semana antes y desaparece cuando termina.

La combinación de visibilidad (dónde) y programación (cuándo) convierte tus widgets en un sistema de gestión de anuncios sencillo pero totalmente funcional. Sin plugins de publicidad, AdServers complejos ni costes adicionales.

Soluciones incompletas

Existen varios plugins para controlar la visibilidad de widgets, pero el problema que me he encontrado es que ninguno lo ofrece todo, o no todo gratis:

  • Algunos solo dan opciones básicas (mostrar en portada o no, poco más).
  • Otros incluyen la programación por fechas como función premium, de pago.
  • Muchos no funcionan bien con el editor de bloques de WordPress.
  • Jetpack incluye la opción de visibilidad de widgets, pero te obliga a instalar un plugin enorme para una sola función, y además sin programación horaria.

Lo que necesitamos es algo ligero que incluya todas las opciones de visibilidad y las de programación, a ser posible sin coste, que funcione tanto con widgets clásicos como con los de bloques.

Pero no lo encontré, así que – adivina – me lié la manta a la cabeza y lo hice yo, para mi porque uso este tipo de funcionalidad hace años, y ahora también para todos, porque es público, libre, abierto y gratuito.

La solución: control de visibilidad de widgets

El plugin que vamos a usar lo he llamado «Control de visibilidad de widgets», para no distraer, y reúne lo mejor de las alternativas existentes sin ninguna limitación y totalmente gratis:

  • Todas las opciones de visibilidad: por página, categoría, etiqueta, usuario, rol, autor, fecha, taxonomías personalizadas…
  • Programación por fecha y horario completa incluida, sin versión premium.
  • Funciona con widgets clásicos y de bloques.
  • Ligero: solo hace lo que tiene que hacer, nada más.
  • Si vienes de Jetpack, como era mi caso, importa automáticamente las reglas que ya tenías configuradas.

Ve a Plugins → Añadir nuevo y busca «Widget Visibility Control». Instala y activa, como siempre.

No hay configuración inicial obligatoria, el plugin añade las opciones de visibilidad directamente en cada widget.

Configurar la visibilidad en widgets clásicos

Si usas aún widgets clásicos o configuras widgets desde el personalizador de WordPress (Apariencia → Personalizar → Widgets), verás un botón de «Visibilidad» debajo de cada widget.

boton visibilidad widget clasico

Al hacer clic se despliega el panel de configuración:

ajustes visibilidad widget clasico

Las opciones disponibles

Primero eliges la acción: Mostrar u Ocultar. Luego añades condiciones:

  • Categoría: Mostrar solo en entradas de ciertas categorías (o en la página de archivo de esa categoría).
  • Etiqueta: Lo mismo pero con etiquetas.
  • Autor: Para mostrarlo solo en páginas de un autor concreto o en todas las páginas de autor, sea quien sea.
  • Usuario: Mostrar solo a usuarios que han iniciado sesión o solo a visitantes.
  • Perfil: Para mostrar el widget solo administradores, solo a suscriptores, autores, etc.
  • Fecha: Archivos por día, mes o año.
  • Página: Puedes elegir que se muestre en…
    • Portada.
    • Página de blog.
    • Página de archivo.
    • Página 404.
    • Resultados de búsqueda.
    • Cualquier tipo de contenido (entradas, páginas, productos de WooCommerce…).
    • Una página específica.
  • Taxonomía: Para taxonomías personalizadas si las usas.

Combinar condiciones

Puedes añadir varias condiciones. Por defecto funcionan con lógica «OR«: el widget se muestra si cumple cualquiera de ellas.

Si marcas «Coincidir todas las condiciones» cambia a lógica «AND«: tiene que cumplir todas las condiciones a la vez.

Ejemplo rápido: Quieres mostrar un banner solo en posts de la categoría «Ofertas» y solo a usuarios no registrados.

  1. Añades condición: Categoría → Ofertas
  2. Añades otra condición: Usuario → Desconectado
  3. Marcas «Coincidir todas las condiciones»

El banner solo aparecerá en publicaciones de la categoría «Ofertas», y solo a visitantes, que no han iniciado sesión.

Configurar la visibilidad en widgets de bloques

Si usas el editor de bloques para widgets (Apariencia → Widgets), la configuración está en otro sitio.

Selecciona cualquier bloque en un área de widgets. En la barra lateral derecha, abre la sección Avanzado. Ahí encontrarás el panel de Visibilidad.

reglas visibilidad widgets bloques

Las opciones son las mismas que en widgets clásicos:

reglas programacion y visibilidad widgets bloques

La diferencia es solo de ubicación pero el funcionamiento es idéntico.

Programar widgets: mostrar solo durante un periodo

Tanto en widgets clásicos como de bloques encontrarás una sección llamada «Programación».

Opciones de programación

  • Sin programación: Sin programación, el widget sigue las reglas de visibilidad normales.
  • Mostrar solo durante un periodo: El widget ÚNICAMENTE aparece entre las fechas que configures.
  • Ocultar durante un periodo: El widget se OCULTA durante el periodo y aparece el resto del tiempo.

Configuras fecha y hora de inicio y de fin. El plugin usa la zona horaria de WordPress (la que tienes en Ajustes → Generales).

Si marcas «Sin fecha de fin», el widget empezará a mostrarse en la fecha de inicio y continuará indefinidamente.

Ejemplo: banner de oferta de Navidad

Quieres que un banner promocional aparezca del 15 al 31 de diciembre:

  1. Selecciona «Mostrar solo durante un periodo»
  2. Fecha desde: 15 de diciembre, 00:00
  3. Fecha hasta: 31 de diciembre, 23:55
  4. Guarda

El banner aparecerá solo durante esas fechas. El 1 de enero desaparece automáticamente.

Ejemplo: ocultar widget durante mantenimiento

Tienes un widget que enlaza a una sección que vas a actualizar el fin de semana:

  1. Selecciona «Ocultar durante un periodo».
  2. Configura los días y horario en que harás el mantenimiento.
  3. El widget desaparece esos días y vuelve cuando lo hayas configurado.

Combinar visibilidad y programación: gestión sencilla pero completa de anuncios

Aquí es donde el plugin demuestra su valor real. Combinando las dos funciones tienes un sistema de gestión publicitaria básico pero completamente funcional.

Ejemplo 1: Anuncio contratado para categorías específicas durante un mes

Un cliente te paga por mostrar su banner en posts de «Tecnología» y «Gadgets» durante febrero:

  1. Creas un widget con su banner
  2. Visibilidad: Categoría → Tecnología, añades otra condición Categoría → Gadgets
  3. Programación: «Mostrar solo durante un periodo», del 1 al 28 de febrero
  4. Guardas y te olvidas

El banner aparece solo donde debe y solo cuando debe.

Ejemplo 2: Oferta con caducidad de 48 horas solo en la portada

Lanzas una promoción relámpago:

  1. Visibilidad: Página → Página de inicio
  2. Programación: «Mostrar solo durante un periodo», viernes 10:00 a domingo 10:00

Ejemplo 3: Widget de bienvenida para nuevos visitantes que desaparece tras el lanzamiento

Acabas de renovar la web y quieres un mensaje de bienvenida temporal:

  1. Visibilidad: Usuario → Desconectado (solo visitantes)
  2. Programación: Fecha desde hoy, marca «Sin fecha de fin» si no sabes cuándo quitarlo, o pon fecha de fin si tienes claro el periodo

Página de ajustes y migración desde Jetpack

En Apariencia → Visibilidad de widgets tienes una página de ajustes con información sobre los datos almacenados:

ajustes importar widgets visibilidad jetpack

Desde aquí puedes:

  • Ver cuántos widgets tienen reglas configuradas.
  • Ver si hay datos en formato Jetpack pendientes de importar o limpiar.
  • Reimportar reglas desde Jetpack si algo falla.
  • Limpiar datos en formato antiguo una vez migrados.

Si vienes de Jetpack

Este plugin nació precisamente por mi necesidad (ganas más bien) de dejar de depender de Jetpack solo para esto. Tener instalado un plugin enorme solo para controlar la visibilidad de widgets no tiene mucho sentido, y encima sin programación por días y horario.

Si ya usabas el módulo Widget Visibility de Jetpack la transición es más que sencilla, es automática:

  1. Nada más activar Widget Visibility Control tus reglas existentes se importan automáticamente y puedes verlo en la página de ajustes.
  2. Desde ahí tienes un botón para importar de nuevo las reglas de visibilidad de widgets de Jetpack, por si te quedaste con dudas o por algún motivo (desconexión de Internet o algo así) no funcionó inicialmente (raro).
  3. Puedes desactivar el módulo de Jetpack (o el plugin entero si no usas nada más).
  4. Tus widgets seguirán funcionando exactamente igual.

En la página de ajustes verás cuántos widgets tenían reglas en formato Jetpack. Una vez comprobado que todo funciona puedes usar el botón «Eliminar los datos en formato de Jetpack» para limpiar las reglas antiguas de la base de datos y dejar todo limpio y ordenadito.

Si algún día quisieras volver a Jetpack (aunque no sé por qué querrías), los datos anteriores se mantienen intactos salvo que uses este botón para borrarlos.

Notas adicionales sobre el funcionamiento del plugin

  • La programación trabaja junto con la visibilidad: Si configuras que un widget se muestre solo en la portada Y solo durante diciembre, ambas condiciones deben cumplirse. Tiene que ser la portada Y estar dentro del periodo.
  • Zona horaria: Usa la de WordPress. Revísala en Ajustes → Generales si las horas no cuadran.
  • Widgets de bloques y clásicos: Las reglas se guardan de forma independiente. Si migras de un sistema a otro las reglas no se pierden.

Si te ha servido me doy por satisfecho

Controlar dónde y cuándo aparecen los widgets debería ser una función básica de WordPress, pero no lo es. Con este plugin espero haber conseguido que lo que antes era imposible, o caro, se convierta en algo trivial, y gratis.

Ya sea para segmentar anuncios, mostrar contenido estacional, gestionar publicidad contratada o simplemente mantener tu web ordenada, tener control sobre la visibilidad y programación de widgets te da todo lo necesario.

Lo dicho, el plugin se llama Control de visibilidad de widgets, Widget Visibility Control en inglés, y lo tienes disponible gratis en el repositorio oficial o en el instalador de plugins de tu WordPress:

→ Descargar Widget Visibility Control en WordPress.org

→ Probar Widget Visibility Control en Playground

Compartir en redes
Resumir con IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 3

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

4 comentarios en “Widgets condicionales en WordPress: visibilidad por página y programación por fecha y horario”

  1. Excelente trabajo Fernando. ¡Eres el #1! Ya con ganas de probar el plugin. Te consulto, ¿sería muy complicado ponerle condicionales REG tipo?

    #/tag/#
    #/blog/#

    Es algo que me hace el Assest Clean Up, y es lo único por lo que lo mantengo.

    ¡Gracias estimado!

    1. En principio no tiene campo para meterle condicionales personalizados, pero sí añadirle tantas condiciones AND y OR como gustes a golpe de clic.

      De todos modos mira que eres raro, usar un plugin de optimización para meter condicionales en widgets 😀

      1. Ya sé que es raro… ¡las cosas de la vida!, la idea es apagarlo en todas las etiquetas… de ahí el REG

        Depués tengo otro cliente en donde los apago por categorías de la página, ej: #/ciencias-agrarias/#

        Un saludo estimado

  2. Bravíssimo !!!

    Estoy hace años usando uno que no gusto, pero como no encontré otro mejor… lleno de opciones para pagar…
    Tampoco entré en el Jetpack exactamente por «bloated»…

    Gracias, voy a experimentar ya!

Los comentarios están cerrados.

Scroll al inicio