Descubre cómo puedes añadir un botón al bloque de navegación que solo se muestre a usuarios no logueados mediante código.
El bloque de navegación es el responsable de mostrar el menú en los temas de bloques de WordPress (o temas clásicos que hayan dado soporte). Permite mostrar un listado de items, que son bloques anidados, y ha mejorado muchísimo en las últimas actualizaciones.
Aunque se puede personalizar bastante desde la interfaz de usuario, no te permite mostrar u ocultar items de forma condicional. Por suerte, la versión de WordPress 6.1 introduce un filtro de PHP que permite interaccionar con el bloque de navegación.
Esto abre un campo de posibilidades inmenso, como por ejemplo, añadir un botón de suscripción que solo se muestre si el usuario no está logueado.
Vamos a ver cómo:
Snippet para añadir un botón al menú que solo se muestre a usuarios no logueados
Asegúrate de que estás usando un tema de bloques (por ejemplo el Twenty Twenty-Three) o que, si estás usando un tema clásico, has dado soporte a las partes de plantilla y tienes una cabecera definida.
A continuación añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
En este código utilizas el filtro block_core_navigation_render_inner_blocks
para añadir un botón al final del menú si el usuario no está logueado ( !is_user_logged_in()
).
En este caso usas el HTML del bloque de botón con el texto de «Suscribirse» y el enlace de /registro/, pero puedes modificarlo a tu gusto. No solo eso, sino que puedes crearlo desde el editor de bloques y luego pegar el HTML resultante.
También puedes usar otra etiqueta condicional (por ejemplo, is_home
, is_page
…).
Ya ves que tener un filtro con el que modificar el bloque de navegación te da una flexibilidad extra a lo que ofrece la interfaz de usuario. Y este es solo un ejemplo de lo que puedes conseguir.
Puedes añadir otros elementos o bloques de forma condicional, así que las posibilidades son muy amplias. En futuros tutoriales te explicaré otros ejemplos con los que sacarle partido.
Eso sí, ten en cuenta que al estar usando un filtro de PHP tienes la limitación de que el resultado solo lo verás en la parte frontal de la web, en el backend no se reflejarán los cambios.
Conclusiones
Ya ves que gracias al nuevo filtro del bloque de navegación de WordPress puedes añadir elementos al menú de cualquier tema de forma condicional.
En este caso es un botón de suscripción que solo se muestra a usuarios no logueados, pero las posibilidades son inmensas. En futuros tutoriales explicaré más formas de sacarle partido.
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. 😉
Tutoriales relacionados
- https://codigogenesis.com/usar-partes-plantilla-basadas-bloques-tema-clasico-wordpress/
- https://codigogenesis.com/usar-partes-plantilla-basadas-bloques-tema-clasico-wordpress/
- https://codigogenesis.com/crear-plugin-funcionalidades-wordpress/
- https://codigogenesis.com/tutoriales/fse/bloque-navegacion/
- https://codigogenesis.com/tutoriales/fse/bloque-navegacion/