Creando Shortcodes personalizados en WordPress

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:

  1. Descomprimir el archivo y volverlo a comprimir con windows, esto corrige el problema fĂ¡cilmente.
  2. 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.
  3. 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.

Dejar un comentario

Tu direcciĂ³n de correo electrĂ³nico no serĂ¡ publicada. Los campos obligatorios estĂ¡n marcados con *

Scroll al inicio