Mostrar listado de usuarios registrados en WordPress
El siguiente código PHP nos permite listar el nombre a mostrar de todos los usuarios que existen en la base de datos:
<ul> <?php $usuarios = get_users(); foreach ($usuarios as $usuario) { echo '<li>' . $usuario->display_name . '</li>'; } ?> </ul>
Recordemos que desde el perfil de cada uno de ellos, pueden escoger cuál será el nombre a mostrar:
Podemos escoger mostrar otros parámetros como:
//Nombre a mostrar. Ej: David Example $usuario->display_name //Login del usuario. Ej: david $usuario->user_login //Contraseña encriptada (hash). Ej: $P$BK1deNU7lV/rgwp2oncgESRHRYLedRF. $usuario->user_pass //Nickname. Ej: David $usuario->user_nicename //Email. Ej: example@example.com $usuario->user_email //Url de su web. Ej: www.loopeando.com $usuario->user_url //Fecha de registro. Ej: 2017-03-21 14:11:32 $usuario->user_registered
De manera que si queremos listar los emails de todos los usuarios registrados:
<ul> <?php $usuarios = get_users(); foreach ($usuarios as $usuario) { echo '<li>' . $usuario->user_email. '</li>'; } ?> </ul>
Pero también podemos filtrar los resultados, ordenarlos o mostrar únicamente los que tengan un rol determinado.
Ejemplo para mostrar únicamente los suscriptores y ordenarlos por nickname:
<ul> <?php $usuarios = get_users('orderby=nicename&role=subscriber'); foreach ($usuarios as $usuario) { echo '<li>' . $usuario->display_name . '</li>'; } ?> </ul>
Siendo el orderby= cualquiera de los parámetros arriba listados. Por ejemplo, si queremos ordenar por fecha de registro:
<ul> <?php $usuarios = get_users('orderby=user_registered&role=subscriber'); foreach ($usuarios as $usuario) { echo '<li>' . $usuario->display_name . '</li>'; } ?> </ul>
Siendo los roles por defecto por los que se puede filtrar:
administrator editor author contributor subscriber
¡Muchas gracias por este clarificador aporte! 🙂
Disculpa si la pregunta es demasiado básica, pero mi nivel es amateur total…
¿Cómo hago para mostrarme estos datos que nos explicas en el artículo?
Gracias por tu atención.
Muy bueno Cristian. Me ha ayudado mucho en mi aprendizaje.
Un par de consultillas, si se puede claro…, ¿como sería si quiero mostrar más de un dato, por ejemplo Nombre y Web?
O ¿si quisiera listar solo a los que sí tienen web y no a los que lo tienen vacío?
Muchas preguntas ¿no?
Gracias
Cristian! Muy buen post.
¿Cómo se puede saber si el usuario creó algún post para filtrar y mostrar solo los que crearon contenidos?
Hola Adrian, puedes usar este plugin llamado Advanced Queries de Shabti Kaplan en el repositorio de wordpress https://wordpress.org/plugins/advanced-post-queries/ espero te sirva y te llegue a tiempo, jejeje