Cómo mostrar contenido basado en roles de usuario de WordPress

Al crear un sitio web de WordPress, a menudo es √ļtil proporcionar contenido o funcionalidad seg√ļn el rol o las capacidades de un usuario. Por ejemplo, es posible que desee mostrar contenido especial en su sitio, pero solo para los administradores. Esa es solo una de las muchas posibilidades.

Es bastante √ļtil que WordPress tenga una funci√≥n incorporada para ayudar. La funci√≥n current_user_can () le permite verificar los permisos de los usuarios conectados. Con base en esa informaci√≥n, puede proporcionarles cualquier cosa especial que desee. Por el contrario, tambi√©n puede desactivar ciertos elementos tambi√©n.

Siguiendo con el ejemplo de contenido especial mencionado anteriormente, nos sumergiremos en algunos fragmentos b√°sicos que nos permiten agregar esta funcionalidad.

Ejemplo 1: solo administradores

En este ejemplo, verificaremos si el usuario conectado que visita nuestra p√°gina es un administrador del sitio. Si es as√≠, se mostrar√° un peque√Īo mensaje de bienvenida.

Antes de entrar en el c√≥digo, vale la pena se√Īalar que hay m√°s de una forma de verificar los permisos de un usuario. El Codex de WordPress establece que podemos proporcionar un rol de usuario existente dentro de la funci√≥n current_user_can (), sin embargo, no se recomienda. Puede haber imprecisiones que conducen a que ocurra algo incorrecto.

En cambio, podemos usar las capacidades de ese rol de usuario en particular. Hay una lista completa de las capacidades que tiene cada rol de usuario en el Codex. Entonces, en lugar de verificar si el usuario es administrador, podemos verificar si tienen una capacidad específica, como la activación de complementos.

Ahora, veamos un código. Lo siguiente aparecerá dentro de la plantilla de tema que elija.



          

Howdy, Administrator!

En este caso, estamos verificando si el usuario puede activar complementos, algo que solo los administradores (y, en las instalaciones de varios sitios, los superadministradores) tienen la capacidad de hacerlo.

Ejemplo 2: pong√°monos personales con los miembros

Si bien el primer ejemplo muestra un mensaje genérico, también podemos crear una experiencia más personalizada. Esto es especialmente importante si está ejecutando un sitio de membresía. Ayuda a construir ese sentido extra de comunidad.

Aquí, agregaremos un mensaje personal que incluya el nombre del usuario. Podemos aprovechar esta información a través de la función get_current_user (). También asumiremos que a nuestros miembros se les asigna el rol de suscriptores dentro de WordPress.



          

Howdy, user_firstname; ?>! Thanks for being a part of our community.

Por cierto, la capacidad de leer una publicación es la capacidad de nivel más bajo dentro de WordPress. Por lo tanto, se aplica a todos los niveles de usuario, no solo a los suscriptores. Esto solo asegura que no hemos dejado a nadie afuera.

Más allá de verificar la capacidad de lectura, también mostramos el nombre del usuario en el mensaje. Sin embargo, hay más posibilidades con respecto a los datos del usuario que podrían agregarse a la mezcla.

Ejemplo 3: un encabezado personalizado, basado en las capacidades del usuario

Para nuestro √ļltimo ejemplo, hagamos algo un poco m√°s dram√°tico. Vamos a ofrecer diferentes encabezados de tema, dependiendo de las capacidades que tenga un usuario.

A trav√©s de la funci√≥n get_header (), WordPress permite el uso de m√ļltiples archivos de encabezado. Y mostrarlos en funci√≥n de las condiciones del usuario puede ser muy √ļtil. Por ejemplo, el miembro de un sitio podr√≠a beneficiarse de un encabezado altamente personalizado. Los no miembros podr√≠an ver algo m√°s gen√©rico.

En nuestro código, volveremos a verificar si nuestros usuarios tienen capacidades de lectura. Y también agregaremos una verificación adicional para garantizar que hayan iniciado sesión, a través de is_user_logged_in (), solo por si acaso.

Si usa este código en un proyecto, reemplazaría a lo largo de sus plantillas.



          



          


Arriba, estamos verificando si el usuario tiene las capacidades correctas y si realmente ha iniciado sesión. Si ambos elementos regresan como verdaderos, se muestra un archivo de encabezado personalizado. De lo contrario, se mostrará el encabezado predeterminado de nuestro tema.

Una oportunidad para hacer m√°s por los usuarios

Los ejemplos anteriores son solo peque√Īas formas en que podemos mejorar la experiencia del usuario. Pero tambi√©n existe el potencial de hacer mucho m√°s. Realmente, ¬°la √ļnica limitaci√≥n es tu propia imaginaci√≥n!

Por lo tanto, la próxima vez que cree un sitio de WordPress, busque maneras de proporcionar a los usuarios características basadas en sus roles y capacidades. Apreciarán el esfuerzo y habrás creado un sitio web más completo.