Descubre en este tutorial cómo ocultar el contenido de cualquier bloque a usuarios no logueados en WordPress, mediante código.
Dependiendo de la web que tengas y tu estrategia, hay veces en las que te puede interesar mostrar contenido distinto dependiendo de si el usuario está logueado o no.
En el tutorial de hoy vas a ver cómo controlar que el contenido de un bloque solo se muestre a usuarios logueados, combinando el filtro render_block
con la etiqueta condicional is_user_logged_in
.
Vamos a ver cómo:
Pasos para ocultar el contenido de un bloque a usuarios no identificados
1. Elige el bloque que deseas ocultar
En primer lugar, elige el bloque cuyo contenido quieres que sea solo visible para los usuarios que se hayan identificado con su cuenta.
Si quieres que esto se aplique a más de un conjunto de bloques puedes elegir el bloque de grupo como contenedor.
2. Añade una clase CSS personalizada
Una vez que hayas creado el bloque, ve al apartado de «Avanzado» y añade ocultar-no-logueados
en «Clase(s) CSS adicional(es)» del bloque.
3. Modifica el acceso al contenido del bloque
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 2063 snippets de esta web,
identifícate o suscríbete aquí.
En este código utilizas el filtro render_block
, que te permite acceder a los atributos de todos los bloques, junto con la etiqueta condicional is_user_logged_in
.
En el mismo le indicas que si el usuario no está logueado y el bloque tiene la clase CSS ocultar-no-logueados
, no podrá ver el contenido del bloque. En cambio, a los suscriptores activos les mostrará el bloque completo, tal y como lo creaste.
En el ejemplo ordenas que muestre un mensaje vacío para que el usuario sin identificar no vea nada, pero si prefieres mostrarle un texto indicando que, para ver el contenido, debe de acceder a su cuenta en la web, puedes modificarlo por lo siguiente:
$message ='Para ver el contenido debes estar logueado';
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
Ahora ya sabes cómo conseguir que cualquier bloque solo sea visible para los usuarios que estén logueados en la web.
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. 😉