• Saltar a la navegación principal
  • Saltar al contenido principal
Código Genesis

Código Genesis

Tutoriales de WordPress y Genesis Framework

  • Empieza aquí
  • Cuenta
    • Suscripción
    • Perfil
    • Actualizar tarjeta
    • Favoritos
    • Salir
  • Suscribirse
  • Acceder

Añadir un botón al bloque de navegación que solo se muestre a usuarios no logueados

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.

Cabecera que visualiza un usuario logueado
Cabecera que visualiza un usuario no 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 1805 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. 😉

Bloque Navegacion Cabecera PHP WordPress

Nahuai Badiola

Desarrollador web especializado en WordPress y Genesis Framework. CEO de Código Genesis y cofundador de OsomPress (temas y plugins para WordPress).

Para dejar dudas o preguntas sobre este código, puedes login o suscribirte.

  • Empieza aquí
  • Sobre Código Genesis
  • Preguntas frecuentes
  • Contacto

Aviso legal · Política de privacidad · Política de cookies · Condiciones de contratación
Copyright © 2023 · Código Genesis

¿Has olvidado tu contraseña?