Descubre en este tutorial cómo mostrar un bloque reutilizable en una ventana modal (pop-up) en WordPress.
En anteriores tutorial te he explicado cómo puedes mostrar bloques reutilizables al final de entradas o al inicio de páginas concretas.
Pero otra opción interesante puede ser que aparezcan dentro de una ventana modal al hacer clic en un elemento de la web.
Un ejemplo práctico podría ser que al hacer clic sobre un botón con CTA se abra un bloque que muestre un formulario de suscripción a la newsletter.
Este sería el resultado final:

¿Te interesa?
Vamos a ver cómo puedes conseguirlo.
Pasos para mostrar un bloque reutilizable como un pop-up en WordPress
1. Crea el bloque reutilizable que quieres mostrar en la ventana modal
Crea el bloque que desees que aparezca como un pop-up.
Puedes elegir entre todos los bloques que tengas instalados, incluso puedes agrupar varios para conseguir la estructura que deseas.
Una vez lo hayas personalizado a tu gusto, ve a los tres puntos de la barra de herramientas del bloque y elige «Añadir a los bloques reutilizables».

A continuación dale un nombre y guárdalo.

2. Examina el ID del bloque
Una vez que hayas creado el bloque, ve al modo «editor de código» y examina el HTML.

Pro tip: utiliza el atajo de teclado: Cmd + Alt + Shift + M
para ir más rápido.

A la altura de donde has creado el bloque verás algo similar a:
<!-- wp:block {"ref":8040} /-->
Ese número es el ID de tu bloque y lo vas a necesitar a continuación.
2.1. [Bonus] Obtén el ID del bloque de forma sencilla
Si vas a trabajar con bloques reutilizables a menudo y quieres tener el ID más a mano te recomiendo que apliques estos dos tutoriales:
- Mostrar bloques reutilizables en el menú de administración de WordPress
- Añadir una columna con el ID de las entradas y páginas al admin de WordPress
Así podrás acceder a los bloques reutilizables de forma más sencilla y obtener el ID de un solo vistazo.

3. Crea la estructura y el fichero principal del plugin
Antes de nada, crea la estructura de carpetas del plugin. Sería algo así:
block-modal
|__ assets
|__ css
|__ style.css
|__ js
|__ script.js
|__ block-modal.php
Una carpeta principal con el nombre del plugin más una subcarpeta llamada CSS, un fichero style.css dentro y otra subcarpeta llamada JS con un fichero script.js dentro.
Crea un fichero en la raíz con el mismo nombre que la carpeta principal (en este caso, block-modal.php) y añade la cabecera del plugin:
<?php
/**
*
* Plugin Name: Block Modal Box
* Plugin URI: https://codigogenesis.com/user-created-plugins
* Description: A simple modal box that displays a reusable block
* Version: 1.0.0
* Author: Código Genesis
* Author URI: https://codigogenesis.com/
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
*/
?>
Y así quedaría la cabecera más el código del plugin:
Para ver este código y los otros 1867 snippets de esta web,
identifícate o suscríbete aquí.
Para obtener el contenido del bloque reutilizable y volver a renderizarlo en la ventana modal usas varias funciones:
get_post_field
(en esta línea tendrás que modificar el ID del bloque reutilizable).parse_blocks
.render_block
.- Modificar el filtro de
the_content
para que se muestre correctamente.
También añades el marcado HTML para la ventana modal.
Y por último, encolas los estilos de CSS y el script.
Esto lo haces de forma condicional para que solo se carguen si el usuario no está logueado y está en una página concreta (en este ejemplo usas el ID 8022, cámbialo según tu caso).
Esta es una manera de asegurarte de que los fichero solo se cargan cuando son necesarios. Sin embargo, puedes modificar o eliminar el condicional para ajustarlo a tus necesidades.
4. Crea el fichero style.css
Una vez que tienes toda la parte funcional del plugin necesitas dar los estilos para que la ventana modal muestre el bloque reutilizable como en el ejemplo de arriba.
Para ello, crea el fichero style.css con las siguientes líneas:
Para ver este código y los otros 1867 snippets de esta web,
identifícate o suscríbete aquí.
En este caso el CSS está pensado para que en el resultado final el pop-up se vea así:

Dependiendo del diseño de tu bloque reutilizable es posible que tengas que modificarlo para ajustarlo a tus necesidades.
5. Crea el fichero script.js
Para que la ventana modal se muestre al hacer clic y se vuelva a ocultar al cerrarla vas a necesitar una pocas líneas de JavaScript.
Así que crea el fichero script.js con las siguientes líneas:
Para ver este código y los otros 1867 snippets de esta web,
identifícate o suscríbete aquí.
6. Añade la clase CSS al elemento que abrirá el pop-up
Por último, debes añadir la clase CSS al elemento que quieres que lance la ventana modal al hacer clic sobre el mismo.
Para ello añade block-modal-open
en «Clase(s) de CSS adicional(es)» del bloque que elijas:

En el ejemplo inicial, lo añadirías al botón con el CTA.
Listo. Ahora que ya tienes todas las piezas del puzzle, el bloque reutilizable que has creado se mostrará en una ventana modal al hacer clic sobre el elemento que elijas:

Conclusiones
Ahora ya sabes cómo crear un plugin que permita mostrar cualquier bloque reutilizable en una ventana modal o pop-up en WordPress.
Aunque el ejemplo muestra un bloque para recoger los datos en un formulario para una newsletter, puedes modificarlo para usarlo en otras circunstancias. Tu imaginación es el límite. 😉
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉