Shortcode para mostrar la fecha actual

Hoy se va a explicar como un shortcode que nos devuelva la fecha actual.

Los shortcodes se deben declarar y «programar» en el fichero functions.php de tu tema.

Recuerda que es recomendable trabajar sobre tu tema hijo para no perder estas modificaciones.

En este caso, nos vamos a ayudar de la función «date_i18n«, una función propia de WordPress, que tiene muchas similitudes a la función date de PHP y nos va a quitar un dolor de cabeza a la hora de «traducir fechas».

add_shortcode('current_date', 'get_current_date');

function get_current_date() {
    return date_i18n("d/m/Y");
}
  • Declaramos el shortcode con la función add_shortcode.

  • El primer parámetro corresponde al nombre con el que invocaremos al shortcode, en este caso [current_date]

  • El segundo parámetro llama a la función del shortcode para que haga algo, en este caso nos devuelve la fecha en formado d/m/Y –> 01/08/2021

Explicación del formato de la fecha en PHP

El formato de fecha viene dado por el lenguaje de programación PHP, al buscar «php date» en Google nos aparece toda la información referente al formato de fechas, pudiendo variar la forma o formato a presentar.

Este sería un resumen de lo que contiene la documentación de PHP.

Días

Date(‘j’) – Días sin los ceros iniciales: 1 a 31
Date(‘d’) – Días con 2 dígitos, con los ceros iniciales:  01 a 31
Date(‘D’) – Devuelve las 3 primeras letras del día: Mon hasta Sun
Date(‘l’) – Devuelve el nombre completo de los días: Monday hasta Sunday

Meses

Date(‘n’) – Meses sin los ceros iniciales: 1 a 12
Date(‘m’) – Meses con 2 dígitos, con los ceros iniciales:  01 a 12
Date(‘M’) – Devuelve las 3 primeras letras del mes: Jan hasta Dec
Date(‘F’) – Devuelve el nombre completo de los meses: January hasta December

Años

Date(‘y’) – Años con los últimos dos dígitos: 1998 o 2021
Date(‘Y’) – Años con 4 dígitos:  1998 o 2021

Ejemplos de fechas

Visto lo anterior tan solo se deben separar los elementos como se requiera, bien con guiones (-), barras (/), espacios o texto. Por ejemplo:

  • date_i18n(‘d/m/Y’) -> 01/08/2021
  • date_i18n(‘j-M-Y’) -> 01-08-2021
  • date_i18n(‘D d.m.Y’) -> Dom 01.08.2021
  •  ‘Hoy es ‘. date_i18n(‘l’) . ‘, ‘. date_i18n(‘d’) . ‘ de ‘. date_i18n(‘F’). ‘ del año ‘ .date_i18n(‘Y’) -> Hoy es domingo, 01 de agosto del año 2021
/*** Ejemplos fechas ***/

/*** Ejemplos fechas ***/
function display_date_1() {
    return date_i18n('d/m/Y');
}
add_shortcode('date_1', 'display_date_1');


function display_date_2() {
    return date_i18n('d-m-Y');
}
add_shortcode('date_2', 'display_date_2');

function display_date_3() {
    return date_i18n('D d.m.Y');
}
add_shortcode('date_3', 'display_date_3');

function display_date_4() {
	return "Hoy es ". date_i18n('l') .", " . date_i18n('d') . " de ". date_i18n('F'). " del año " .date_i18n('Y');
}
add_shortcode('date_4', 'display_date_4');

Las fechas de WordPress sacadas con date de PHP aparecen en inglés

Una situación habitual es, que los nombres de los meses y de los días de la semana aparezcan en inglés y por consiguiente las fechas de WordPress aparecen en inglés, pero queremos que la fechas de WordPress estén en español…

Si te sucede esto prueba a usar la función date_i18n() como se muestra en esta entrada, en vez de usar date() que es propia de PHP y no tiene en cuenta la configuración de zona horaria e idioma de tu WordPress.

Unas de las posibles soluciones que aparecen por Internet es definir el setlocale a español –> setlocale(LC_TIME,’es_ES’);

En mi caso no he conseguido que «funcione», por ejemplo, el sábado aparecía como saturday… por ello uso la función propia de WordPress date_i18n

Cómo mostrar nuestro shortcode de fecha

Según dónde se quiera mostrar el shortcode existen dos opciones.

Mostrarlo en un bloque de texto

En la caja de texto correspondiente introduce el shortcode de la siguiente manera [print_date] -> Cambia el texto «print_date» por el nombre correspondiente.

Añadir el código a un fichero php del tema o plugin

En el tema,  plantilla o plugin a medida, usa la función do_shortcode(‘[print_date]’) para insertar el shortcode deseado.

Conclusiones

Pintar la fecha actual gracias a la función propia de WordPress es muy sencillo, además permite gran variedad de formatos para maquetar la información de forma diferente.

¡Valora este artículo y ayúdame a mejorar la calidad del blog!
(Votos: 0 Promedio: 0)