Muchas veces cuando estamos desarrollando un nuevo proyecto necesitamos que el sitio presente contenidos que no vienen por defecto pero que pueden ser dinĂ¡micos como una lista a partir de una base de datos o simplemente una fecha, por ello les comparto un par de formas de generar y agregar Shortcodes personalizados en WordPress.
Pero empecemos con:
¿QuĂ© es los Shortcodes en WordPress?
Un shortcode es un fragmento de cĂ³digo que permite añadir a tu web, publicaciĂ³n, maquetador o widget imĂ¡genes, contenido o funciones sin tener que utilizar cĂ³digo directamente al momento de hacer una entrada o pĂ¡gina, con simplemente agregar un fragmento de texto previamente declarado ya sea por un plugin o tema dentro de tu instalaciĂ³n de WordPress.
En el caso de wordpress los Shortcodes son cadenas incluidas entre corchetes [] que el sistema interpreta de acuerdo a como estĂ©n declarados, lo que facilita incrustas informaciĂ³n reutilizable sin preocuparse por cĂ³digos complejos o buscar la forma de agregar fragmentos de cĂ³digo dentro de una publicaciĂ³n.
¿QuĂ© tipos de Shortcodes existen en WordPress?
Principalmente 2:
[shortcode]
[shortcode]Contenido[/shortcode]
Lenguaje del cĂ³digo: CSS (css)
- Shortcodes de cierre automĂ¡tico: Los Shortcodes de cierre automĂ¡tico no necesitan de una etiqueta de cierre como las galerĂas o los generados por plugins como Contact Form 7
- Shortcodes de cierre: Estos necesitan una etiqueta de cierre y generalmente sirven para manipular el contenido entre la etiqueta de apertura y la de cierre.
¿CĂ³mo utilizar un shortcode en WordPress?
Dependiendo de dĂ³nde quieras utilizarlo hay distintas opciones:

- En entradas y pĂ¡ginas: dependiendo si utilizas Gutemberg o el editor clĂ¡sico es bastante sencillo, para Gutemberg debes agregar el bloque shortcode y posteriormente dentro del campo que aparece agregamos el shortcode, para el el editor clĂ¡sico basta con agregarlo dentro del contenido.
- Widgets: en el caso de widgets es prĂ¡cticamente lo mismo que para entradas y pĂ¡ginas solo que en la secciĂ³n de widgets.
- Dentro del tema: en el caso de que se quiera utilizar dentro de un tema podemos utilizar cĂ³digo php directamente como el que muestro a continuaciĂ³n:
<?php echo do_shortcode("[shortcode]"); ?>
Lenguaje del cĂ³digo: HTML, XML (xml)
CĂ³mo crear un shortcode personalizado en WordPress
Para empezar veamos un poco de la documentaciĂ³n de wordpress acerca de shortcodes donde podemos encontrar algunos ejemplos ya con un poco mĂ¡s de informaciĂ³n crearemos nuestro primer shortcode.
add_shortcode( string $tag, callable $callback )
Lenguaje del cĂ³digo: PHP (php)
Siguiendo la documentaciĂ³n vemos la funciĂ³n anterior para explicarlo simplemente $tag se refiere a la etiqueta que utilizaremos en nuestro short code y $callback a la funciĂ³n que llamaremos para generar el contenido.
Por ejemplo si vamos a hacer un shortcode que nos muestre la fecha de hoy podrĂamos hacer algo asĂ:
//creamos la funciĂ³n que nos presentarĂ¡ la fecha
function fecha_hoy(){
$meses = array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$mes = $meses[date('n')];
$dia = date('j');
$anio = date('Y');
return '<p>Algo para hoy '.$dia.' de '.$mes.' de '.$anio.'</p>';
}
//llamamos la funciĂ³n en un shortcode
add_shortcode( 'fecha_de_hoy', 'fecha_hoy' );
Lenguaje del cĂ³digo: PHP (php)
Y con esto serĂa suficiente para crear nuestro shortcode pero ahora dĂ³nde lo ponemos para funcione al utilizar el shortcode [fecha_de_hoy] tenemos 2 opciones si lo vamos a utilizar desde un plugin o desde un tema, en el caso de un tema bastarĂa con agregar el cĂ³digo dentro del archivo functions.php del tema utilizado (recuerden utilizar un tema hijo para no perder sus cambios) y ya con esto podremos utilizarlo como se menciona arriba.
En el caso de los plugins basta con agregarlo dentro del plugin a activar pero para un ejemplo prĂ¡ctico haremos un plugin sencillo para wordpress:
Lo primero que haremos serĂ¡ crear una carpeta con el nombre de nuestro plugin en este caso mi-fecha y dentro de la carpeta agregamos un nuevo archivo php llamado mi-fecha.php con el siguiente contenido (podemos utilizar distintos contenidos pero este es el contenido bĂ¡sico se puede consultar la documentaciĂ³n en https://developer.wordpress.org/plugins/plugin-basics/):
mi-fecha.php
<?php
/*
* Plugin Name: Mi fecha
*/
//creamos la funciĂ³n que nos presentarĂ¡ la fecha
function fecha_hoy(){
$meses = array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$mes = $meses[date('n')];
$dia = date('j');
$anio = date('Y');
return '<p>Algo para hoy '.$dia.' de '.$mes.' de '.$anio.'</p>';
}
//llamamos la funciĂ³n en un shortcode
add_shortcode( 'fecha_de_hoy', 'fecha_hoy' );
Lenguaje del cĂ³digo: HTML, XML (xml)
Subimos nuestra carpeta por ftp a la ruta de nuestro sitio por ejemplo /public_html/wp-content/plugins/ y posteriormente lo activamos desde la secciĂ³n de plugins, si todo estĂ¡ correcto ya podremos usar nuestro shortcode.
TambiĂ©n podemos comprimir nuestra carpeta y subirlo por el instalador de plugins entrando a agregar nuevo plugin desde el menĂº plugins en la administraciĂ³n de wordpress, posteriormente seleccionamos subir plugin y seleccionamos nuestro zip, damos instalar, activar y listo.
Bonus
Corregir el problema “Archivo incompatible” al subir un plugin en WordPress
En ocasiones cuando subimos un plugin comprimido por nosotros podemos encontrar ese error (comĂºnmente en Mac y linux) y hay varias formas de corregirlo veamos algunas:
- Descomprimir el archivo y volverlo a comprimir con windows, esto corrige el problema fĂ¡cilmente.
- Agregando la siguiente lĂnea a nuestro archivo functions.php dentro de nuestro tema
add_filter( ‘unzip_file_use_ziparchive’, ‘__return_false’ );
La lĂnea de cĂ³digo anterior le pedirĂ¡ a WordPress que use la clase PclZip en lugar del mĂ³dulo ZipArchive y desaparecerĂ¡ el error. - Comprimir el archivo utilizando la terminal:
Simplemente navegamos dentro de la terminal hasta llegar a la carpeta que contiene la carpeta del plugin y ejecutamos el siguiente cĂ³digo:
zip -vr nombre-plugin.zip carpeta_plugin/
Espero que lo anterior les sea Ăºtil al genera nuevas funciones para su wordpress.