Cómo mostrar eventos con rango de fecha dinámico en Amelia WordPress Booking

Respuesta rápida

Para mostrar eventos con rango de fecha dinámico en Amelia WordPress Booking, la mejor opción es crear un código PHP personalizado que, a su vez, genere un shortcode.

Después, el shortcode podrás añadirlo en cualquier parte de tu página web y mostrará los eventos con el intervalo de días que tú desees (los próximos 7, 15, 30 días, etc).

Por qué necesitarías mostrar eventos con un rango de fechas dinámico

El plugin Amelia WP Booking es uno de los más potentes del mercado WordPress para crear un sistema de reserva de citas y creación de eventos.

Para poder mostrar los eventos con diferentes objetivos, Amelia dispone de un listado de shortcodes (puedes encontrarlo aquí).

Lo que ocurre es que yo mismo, intentando dar respuesta a una necesidad de un cliente, detecté que había un shortcode muy necesario que no existía, y no era otro que uno que me permitiera mostrar un listado de eventos a X días vista (el típico «Próximos eventos» o «Eventos de los próximos 15 días»).

Amelia dispone de un shortcode ([amelia eventslistbooking range=»future»]), pero este shortcode no tiene ningún tipo de límite. Es decir, que si tienes 1.000 eventos programados, te va a mostrar los 1.000,  y yo no quería eso; yo quería limitar ese «futuro» a un intervalo de tiempo personalizado.

Según la documentación de Amelia, existe también un shortcode con el formato [ameliaeventslistbooking range=»2026-04-07 – 2026-05-20»], pero tiene el problema de que las fechas no son dinámicas, es decir, que hay que insertarlas y actualizarlas a mano.

Esta opción tampoco me valía.

La solución

La solución pasaba por crear un shortcode a medida, algo que yo no sé hacer.

¿Qué hice pues?

¿Contraté a un desarrollador? No.

Se lo pedí a Claude.

Y Claude me dijo:

«Si quieres que el shortcode sea dinámico sin tener que actualizar las fechas manualmente, tendrías que usar código PHP con un hook de WordPress para modificar el shortcode automáticamente. ¿Te lo preparo?»

Yo le dije: ¡adelante con ello!

Y me creó un código que funciona de la hostia!!!!

Ejemplo de funcionamiento del shortcode, el cual, en este caso, solo muestra eventos de los próximos 30 días.

Pero espera… antes de compartirte el código, te indico cómo añadirlo en tu web WordPress:

Cómo añadir el código en tu web

A continuación, te doy dos formas para añadir el código necesario en tu web:

Opción 1: con el plugin Code Snippets (recomendado):

  • Instala el plugin «Code Snippets».
  • Añade un nuevo snippet.
  • Pega el código.
  • Activa el snippet.

Opción 2: añadirlo en functions.php:

  • Ve a Apariencia > Editor de temas
  • Selecciona tu tema hijo (no el padre, por Dior).
  • Abre el archivo functions.php.
  • Pega el código al final.

Ahora solo tienes que coger el shortcode, colocarlo en el editor de WordPress, Elementor, Bricks, Divi o el maquetador que utilices, y personalizarlo a tu gusto.

Una vez insertado, ya no tienes que tocar nada, pues se actualizará automáticamente cada día, mostrando siempre los eventos desde hoy hasta el día final del intervalo que escojas.

Cómo utilizar el shortcode

Para eventos de los próximos 7 días (por defecto):

[amelia_events_dynamic]

Para eventos de otra cantidad de días (Ejemplo: 15 días):

[amelia_events_dynamic days="15"]

Para eventos del día siguiente solamente:

[amelia_events_dynamic days="1"]

Añadiendo parámetros adicionales de Amelia (categorías, ubicaciones…):

[amelia_events_dynamic days="15" tag="{eventos}"]
[amelia_events_dynamic days="30" location="1"]

Tipos de parámetros de Amelia que puedes utilizar

  • service: muestra solo los servicios seleccionados.
  • category: limita el formulario a categorías específicas.
  • employee: muestra los servicios prestados por empleados específicos.
  • location: filtra por una o más ubicaciones.
  • tag: muestra servicios o eventos con etiquetas específicas.
  • event: carga un evento específico por ID.
  • recurring: cuando se usa con event, también muestra instancias recurrentes.
  • show: muestra solo los servicios o paquetes cuando ambos estén habilitados.

Ventajas de este shortcode para Amelia

  • Flexibilidad: puedes poner cualquier número de días (1, 7, 15, 30, 90…).
  • Sencillez: solo tienes que indicar en el shortcode el número de días que quieres mostrar.
  • Validación incluida: si pones un valor inválido, usa 7 días por defecto.
  • Integración total: acepta todos los parámetros opcionales de Amelia (tag, event, recurring).
  • Actualización automática: al ser dinámico, el código actualiza dinámicamente el intervalo a mostrar, así que siempre mostrará eventos desde el día actual hasta dentro de los X días que especifiques.

Copia el código a continuación

/**
* Shortcode dinámico de Amelia para eventos con rangos de días personalizables
* Uso: [amelia_events_dynamic days="15"]
*/
function amelia_events_dynamic_shortcode($atts) {
// Parámetros por defecto
$atts = shortcode_atts(array(
'days' => '7', // Número de días desde hoy (por defecto 7)
'tag' => '', // Tags opcionales
'event' => '', // Event ID opcional
'recurring' => '' // Mostrar recurrentes (0 o 1)
), $atts);

// Validar que 'days' sea un número positivo
$days = absint($atts['days']);
if ($days < 1) {
$days = 7; // Fallback a 7 días si el valor no es válido
}

// Obtener fecha actual
$fecha_inicio = date('Y-m-d');

// Calcular fecha final sumando los días
$fecha_fin = date('Y-m-d', strtotime('+' . $days . ' days'));

// Construir el rango
$range = $fecha_inicio . ' - ' . $fecha_fin;

// Construir el shortcode de Amelia con los parámetros
$shortcode = '[ameliaeventslistbooking range="' . esc_attr($range) . '"';

// Añadir parámetros opcionales si existen
if (!empty($atts['tag'])) {
$shortcode .= ' tag="' . esc_attr($atts['tag']) . '"';
}

if (!empty($atts['event'])) {
$shortcode .= ' event="' . esc_attr($atts['event']) . '"';
}

if (!empty($atts['recurring'])) {
$shortcode .= ' recurring="' . esc_attr($atts['recurring']) . '"';
}

$shortcode .= ']';

// Ejecutar el shortcode de Amelia
return do_shortcode($shortcode);
}
add_shortcode('amelia_events_dynamic', 'amelia_events_dynamic_shortcode');

/**
* Créditos: https://refrescandonegocios.com
*/

Conclusión

Crear un shortcode personalizado para Amelia con Claude parece que es bastante sencillo.

He pensado en enviárselo al equipo de soporte del plugin, desde me dijeron que lo planificarían para hacerlo más adelante…, pero quizá quede muy prepotente 🙂


Preguntas frecuentes

¿Qué problema resuelve este shortcode personalizado para Amelia?

Resuelve la necesidad de mostrar un listado de eventos acotado a un intervalo de tiempo futuro (por ejemplo, «los próximos 15 días»), algo que los shortcodes nativos de Amelia no permiten de forma dinámica y automática.

¿Por qué no es suficiente el shortcode nativo [ameliaeventslistbooking range=»future»]?

Porque no tiene ningún límite temporal: si tienes 1.000 eventos programados, los mostrará todos sin posibilidad de restringirlos a un período concreto.

¿Y el shortcode con rango de fechas fijas que ofrece Amelia?

Existe el formato [ameliaeventslistbooking range=»2026-04-07 – 2026-05-20″], pero las fechas son estáticas y hay que actualizarlas manualmente cada vez, lo que no resulta práctico.

¿Cómo funciona el shortcode dinámico [amelia_events_dynamic]?

Genera automáticamente el rango de fechas tomando como punto de partida el día actual y sumándole el número de días que se indique. Se actualiza solo cada día sin necesidad de intervención manual.

¿Cuál es el shortcode más básico y qué hace por defecto?

El shortcode [amelia_events_dynamic] sin parámetros muestra los eventos de los próximos 7 días a partir de hoy.

¿Cómo se personaliza el número de días que se muestran?

Añadiendo el parámetro days. Por ejemplo, [amelia_events_dynamic days=»30″] muestra los eventos de los próximos 30 días. También se puede usar days=»1″ para mostrar solo los del día siguiente.

¿Se pueden combinar otros parámetros de Amelia con este shortcode?

Sí. El shortcode acepta parámetros adicionales como tag, event, recurring, location, category, employee y service. Por ejemplo: [amelia_events_dynamic days=»15″ location=»1″].

¿Qué ocurre si se introduce un valor inválido en el parámetro days?

El código incluye validación: si el valor no es un número positivo válido, utiliza automáticamente 7 días como valor de reserva (fallback).

¿Cómo se añade el código PHP necesario en WordPress?

Hay dos opciones: la recomendada es usar el plugin Code Snippets (instalar, crear un nuevo snippet, pegar el código y activarlo). La alternativa es pegar el código directamente al final del archivo functions.php del tema hijo, accediendo desde Apariencia > Editor de temas.

¿Es compatible este shortcode con maquetadores como Elementor, Bricks o Divi?

Sí. Una vez registrado el shortcode en WordPress, se puede insertar en cualquier parte de la web a través de cualquier maquetador o directamente en el editor de bloques de WordPress, y funcionará sin configuración adicional.

Resume este contenido con IA o compártelo en redes
¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)

Deja un comentario

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

Información básica sobre protección de datos Ver más

  • Responsable: Eduardo Rubianes.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a FastComet INC que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.

  • Responsable: Eduardo Rubianes.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a FastComet INC que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.
Scroll al inicio

Las 9 fases cruciales para diseñar una web atractiva y efectiva.

pasos para diseñar una página web

Guía GRATUITA por entregas con la que aprenderás a diseñar una web profesional y a conseguir resultados reales para vivir de ella.

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.