Cómo usar la función apply_shortcodes()

Reading time aprox: 2 minutes, 9 seconds

Cómo usar la función apply_shortcodes().

Si eres programador de plugins o de temas, habrás visto que existe una función llamada do_shortcodes() en WordPress.

A partir de la nueva versión 5.4 aparecerá un nuevo alias a esa función para hacer más semánticamente coherente el trabajo (ufff qué raro suena eso).

La función que hasta ahora hacía el trabajo, se llama do_shortcodes() y, «do» es un verbo en inglés que implica una realización de una acción.

Como en realidad no se realizaba ninguna acción sino que era el resultado de la función lo que se tenía que presentar (generalmente con una llamada a «echo») se realiza este cambio para que sea más coherente.

Voy a hacer un repaso para que estemos todos en sintonía.

Qué es un «shortcode»

Un «shortcode» es un «código corto» que se utiliza como comodín. Veamos un ejemplo, Si existe un shortcode llamado «agencia», yo puedo escribir una entrada en mi bitácora, con el texto: «Para contactar con nosotros, póngase en contacto con la [agencia].»

Ese texto entre corchetes, es un comodín que hará que el usuario que vea la entrada, pueda leer el texto: «Para contactar con nosotros, póngase en contacto con la Agencia de Viajes Global, teléfono +55 555 555 555 – Horario de oficina: 09:00-18:00 GMT ininterrumpidamente

Por supuesto, hemos tenido que crear con anterioridad este shortcode para que se expanda el texto.

Esto lo podemos hacer fácilmente, incluyendo en nuestro plugin el siguiente código:

function shortcode_agencia() {
    return 'Agencia de Viajes Global, teléfono +55 555 555 555 - Horario de oficina: 09:00-18:00 GMT ininterrumpidamente';
}
add_shortcode('agencia', 'shortcode_agencia');

Pero esto es sólo un ejemplo de lo que significan los «shortcode» que, por cierto, se puede traducir como «atajos» pero yo lo he dejado en inglés porque lo encontrarás casi siempre así en las documentaciones.

Y ahora volvamos a lo que interesa, para eso debemos profundizar un poco más, la forma que he presentado, es válida para los textos en una entrada de la bitácora pero, ¿qué pasa si yo quiero usar el «shortcode» en otro sitio?

Cómo usar la función apply_shortcodes().

Si ya tienes cierta experiencia con WordPress, te habrás encontrado con plugins de muchos tipos, cuyas instrucciones te dicen por ejemplo: «… para usar nuestro plugin simplemente ponga el shortcode [mi_plugin] donde quiera que se realice la acción».

La acción puede ser presentar un texto, presentar una imagen, poner un vídeo, etcétera, como el caso del formulario de contacto «Contact Form 7», que te permite situar un formulario en cualquier parte, insertando su shortcode, por ejemplo:

Error: Formulario de contacto no encontrado.

Shortcode expandido en una página
Shortcode expandido en una página

Si queremos que la acción se realice en un widget en lugar de en la entrada, deberemos poner en el widget, un código como:

echo do_shortcode( '[wporg]Mi Texto[/wporg]' );
// Presenta en pantalla el resultado del shortcode

Semánticamente, esto es incorrecto, ya que «no se hace el shortcode» sino que se presenta en pantalla, mediante la función echo de PHP, y es por eso, que se ha creado el alias apply_shortcodes, de forma que la forma de crear el código es:

echo apply_shortcodes( '[wporg]Mi Texto[/wporg]' );
// Presenta en pantalla el resultado del shortcode

Como digo, esto es un alias; esto significa que si has escrito una función en un plugin o has insertado el código digamos en la cabecera de tu tema, usando la llamada echo do_shortcode( '[wporg]Mi Texto[/wporg]' ); no encontrarás ningún problema, pero la forma recomendada de hacerlo a partir de WordPress 5.4 es echo apply_shortcodes( '[wporg]Mi Texto[/wporg]' );.

La función echo do_shortcode() no desaparecerá en un futuro próximo, pero se recomienda que te acostumbres a la nueva fórmula (echo apply_shortcodes()) porque la primera, desaparecerá.

Recuerda, experimenta, juega, aprende y, sobre todo, ¡diviértete!


¡Gracias por leernos!


¡Tus comentarios y preguntas nos ayudan a mejorar, por favor comenta!

Deja una respuesta

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

quince − doce =

Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.    Más información
Privacidad