Buffer de salida PHP en WordPress

Cuando estamos desarrollando un plugin, un theme de WordPress o simplemente un cliente nos pide una sección para una web donde quiere mostrar cierto contenido estático o dinámico, aquí es donde podemos hacer uso la función que nos ofrece WordPress para crear shortcodes

Estos shortcodes nos permiten empaquetar cierta funcionalidad con su estructura en HTML y mediante una simple declaración entre corchetes [nombre-de-mi-shortcode], podemos obtener un resultado y colocarlo en distintas partes de nuestro sitio. Los shortcodes son una herramienta muy potente que tiene WordPress y que te sacará de muchos apuros.

Una de las ventajas de encapsular código es el hecho de que si se modifica la funcionalidad o la estructura del shortcode, entonces se modificaran todas aquellas secciones de tu sitio donde esté funcionando el shortcode personalizado. 

Si tenemos una plantilla HTML / PHP compleja dentro de un shortcode, en la que necesitamos dar salida a ciertos datos mediante la función “echo” de PHP, estas nos pueden dar problemas de edición y visualización. WordPress por sistema interpreta todo el código pero te encontrarás con partes que visualmente no se muestren. 

Para que WordPress interprete todo el código de un shortcode, usaremos el buffer de salida de PHP (ob_start), que es muy útil y su misión es capturar, almacenar y modificar todas las salidas “echo” antes de que se ejecute el código del shortcode, como si fuese una variable y luego devolverlos a WordPress para posteriormente ser procesados.

Y ahora, ¿Cómo creamos un buffer?

➡ El bufer de salida empieza con ob_start(). 

➡ Introducimos el marcado HTML para generar la estructura que vamos a mostrar. 

➡ Con ob_get_content() recuperamos el contenido del bufer, el cual podemos mostrar con un simple “echo” o almacenarlo en una variable.

➡ ob_clean() se utiliza para borrar el bufer.

➡ ob_end_clean() para cerrar el bufer una vez hayamos terminado con él.

➡ ob_get_clean(), esta función hace tres cosas, obtiene el contenido del bufer, limpia el bufer y desactiva el almacenamiento en bufer.

Aquí te dejo un ejemplo base de cómo lo uso yo en mis desarrollos.

  

*Tienes que cambiar el nombre del shortcode por el tuyo propio.

*Tienes que cambiar el nombre de la función y ponerle siempre un prefijo.

Dejar 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 Israel Escuer .
  • Finalidad Moderar los comentarios. Responder las consultas.
  • Legitimación Tu consentimiento.
  • Destinatarios Israel Escuer.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puedes consultar la información detallada en la Política de Privacidad.

Ir arriba