Seguramente, cuando te has planteado crear un sitio de membresía en WordPress, una de las primeras características que has querido incorporar es un directorio de miembros donde los usuarios registrados puedan hacer networking online.
Y por supuesto, habrás descubierto que, salvo que seas desarrollador – incluso diseñador web – supone todo un reto crear una lista de usuarios registrados de la forma en la que lo visualizaste en tu cabeza.
Por eso, en esta publicación, voy a enseñarte cómo crear un directorio de miembros de 3 formas diferentes en WordPress.
Contenidos
Plugins de pago para directorios de miembros
Si tu perfil es diseñador web o no desarrollador, si buscas una solución fácil, rápida y que funcione sin dolores de cabeza, entonces tendrás que recurrir a la única opción disponible:
FacetWP

FacetWP es un plugin para WordPress que te permite crear filtros de búsqueda avanzados para los contenidos creados en tu sitio web. Pueden ser entradas – posts – o cualquier otro tipo de contenido personalizado – CPT –
Sus herramientas de filtrado – que llaman facets – se ajustan dinámicamente a la búsqueda del usuario. Además esto tiene grandes ventajas: por un lado, ayuda a evitar las páginas de “No se encontraron resultados”. Y por otro se traduce en un mayor tiempo de retención del usuario dentro de tu sitio web.
El plugin tiene un precio de 99$ / año para la licencia básica (1 licencia) y de 249$ / año (20 licencias) para la versión Profesional.
Y adivina qué… precisamente esta última opción, es la que incorpora un add-on que no está disponible en la versión básica: User Post Type.
Este módulo permite “emparejar” un custom post type a cada usuario. De esta forma, cada vez que se cree un usuario, se crea un nuevo tipo de contenido que será el que podrás utilizar para crear una página donde se muestren todos los perfiles y poder añadir una barra de búsqueda que te permita filtrarlos por campos de usuario u otros campos avanzados personalizados.
Obviamente, si quieres sacarle todo el partido, tener un perfil de desarrollador, it’s a must.
Plugins gratuitos para crear listados de usuarios
Existen varias alternativas en forma de plugin gratuito que pueden servirte para crear un directorio sencillo de usuarios.
Simple User Listing

No te dejes engañar por la simplicidad de este plugin para genera una lista de usuarios. Simple User Listing permite crear un directorio de usuarios utilizando practicamente los mismo parámetros que puedes configurar en WP_User_Query. Eso significa que puedes añadir una gran variedad de filtros. Una vez activado, el shortcode principal es [ userlist ] – sin los espacios en blanco –. Si quieres ver el listado completo de parámetros que puedes añadir para filtrar contenidos, mejor pásate por la página del plugin.
Además, te permite modificar la plantilla – si eres usuario medio/avanzado de WordPress – para personalizar la forma en que se visualizan los usuarios:
Copie los archivos que quieres modificar de la carpeta de simple-user-listing/templates del plugin y pégalos en una carpeta de simple-user-listing/templates en la raíz de su tema (ej. mi-tema/simple-user-listing). Y ya podrás cambiar el aspecto de la forma que quieras. Es similar a las partes de las plantillas para los loops de post, excepto que tendrás acceso al objeto $user en lugar del objeto $post.
Y para sorpresa final, si en tu sitio web estás usando Restrict Content Pro y necesitas implementar directorios por niveles de membresía, tengo una buena noticia para ti: ya existe un add-on gratuito para ello que puedes descargarlo aquí. Añade dos parámetros adicionales a este plugin: por un lado, rcp_subscription_level=”xxx” para introducir el id de la membresía de Restrict Content Pro. Y por otro rcp_status=”xxx” donde puedes añadir añadir valores como pending, free, active, expired, canceled. Así actuarán de filtro para el directorio que quieras construir.
En conclusión, un plugin muy ligero y potente que te permitirá crear un directorio de usuarios en tu web aunque tendrás que controlar de php en WordPress, html y css si quieres una personalización más integrada con tu sitio web. Y bueno, por otro lado, tampoco incorpora la capacidad de que el visitante pueda realizar filtros interactuando con el listado.
Dynamic User Directory
Quizá uno de los plugins más sencillos, fáciles y rápidos de implementar en tu sitio de membresía. Dynamic User Directory es un plugin gratuito cuya función es sencillamente eso: visualizar un directorio de usuarios registrados en tu plataforma.

Si bien su versión gratuita está bastante limitada, dispone de una serie de complementos de pago muy económicos que puedes encontrarlos aquí y te permitirán hacer cosas como:
- Filtro de exclusión de usuarios: basado en un campo meta o ACF que hubieses incluido durante el registro o en su panel de control, el usuario puede marcar si le interesa o no aparecer en el directorio público o privado de tu web. También conecta con BuddyPress y permite que si un usuario tiene una inactividad superior a XX días, no aparezca tampoco. Y por último, conexión con MemberPress: donde podrás excluir miembros que no tengan suscripciones o membresías activas.
- Custom Sort Field: permite que el visitante pueda modificar los criterios del directorio de usuarios por campos personalizados.
- Hide Directory Before Search: por defecto, no mostrará el directorio de usuarios hasta que no realices una búsqueda o filtrado inicial.
- Alpha Links Scroll: Crea un directorio del tipo A-Z
- Multiple Directories: Permite crear hasta 100 directorios diferentes en diferentes partes de la web con su propia configuración cada uno de ellos.
- Meta Fields Search: Este complemento proporciona potentes capacidades de filtrado, permitiendo a los visitantes buscar en el directorio por cualquier meta-campo de usuario que se especifique en la configuración.
- Horizontal Layout: Muestra el listado en formato horizontal o tabla de campos.
El pack completo de todos los add-ons tiene un coste de 43$ o puedes comprarlo individualmente por un precio de entre 6-10$ la unidad.
Nota: S2Members no es compatible con los add-on que realizan filtros por meta-campos por guardar la información en un formato no estandarizado de WordPress.
Un aspecto importate es que si eres muy exigente con el diseño de tu sitio web, entonces tendrás que meterle mano al CSS o contar con un diseñador especializado.
Temas WordPress para comunidades
Está bastante extendido que, cuando quieres crear un sitio de membresía, comunidades, etc se tiende a buscar una solución todo en uno. Como es el caso de BuddyBoss theme. Y nada más lejos de la realidad, no siempre es el camino más indicado. Bueno, salvo que el producto en sí mismo que comercializas, sea la propia comunidad. Aún así, en términos de rendimiento y costes – tema de pago anual y un muy buen hosting – puede convertirse en un entorno en el que te veas atrapado por su alto grado de dependencia.
Por lo tanto, huye de las arquitecturas cerradas ya que puede que te causen más de un dolor de cabeza a futuro.
Sin embargo, si quieres depender de ellas, que sepas que ya vienen con un sistema de directorio de miembros que habitualmente suele ser bastante elegante y, según qué casos, más o menos opciones de configuración. Al fin y al cabo, “el abuelo” de estos temas generalmente será BuddyPress 😉
Desarrollo a medida del directorio de miembros
Si lo que quieres el mejor resultado en el directorio de miembros de tu web porque no te vale ninguna de las soluciones anteriores, entonces contratar a un desarrollador profesional en WordPress es una de las opciones más viables.
En Mundo Funnel estamos completamente convencidos que, si es tu caso, podemos ayudarte para crear un directorio profesional de usuarios en tu sitio web de membresía o comunidad. Bien personalizando conforme a tus necesidades algunas de las opciones planteadas en los apartados anteriores, bien desarrollándolo desde cero.

Y como nos gusta picar código, aquí te dejamos una solución muy sencilla para crear un directorio muy simple con solo añadir el código que tienes a continuación:
Código para functions.php
/*
* Mundo Funnel Simple Member List
* Importante: no utilizar este shortcode
* cuando la base de usuarios es superior a 100
* o el hosting contratado no dispone de suficientes
* recursos ya que no tiene implementada la caché
*/
function mf_member_list_callback( $atts, $content = null ) {
$output = "";
$defaults = array(
'query_id' => 'mf_user_list',
'number' => 10,
'order' => 'ASC',
'orderby' => 'login',
);
$atts = wp_parse_args( $atts, $defaults );
$args = array(
'query_id' => $atts['query_id'],
'number' => $atts['number'],
'orderby' => $atts['orderby'],
'order' => $atts['order'],
);
$mf_ml_users = new WP_User_Query( $args );
$users = $mf_ml_users->get_results();
if ( ! empty( $users ) ) {
$output = "<div id=\"{$args["query_id"]}\" class=\"mf_member_list\">";
$output .= "<ul>";
foreach ( $users as $user ) {
$output .= "<li class=\"mf_single_user\">";
$output .= "<img src=\"" . esc_url( get_avatar_url( $user->ID ) ) . "\" />";
$output .= '<div class="mf_personal_data"><span>' . $user->display_name . '</span></div>';
$output .= "</li>";
}
$output .= "</ul>";
$output .= "</div>";
} else {
$output = '<div class="mf_member_list">No encontramos usuarios.</div>';
}
return $output;
}
add_shortcode( "mf_member_list", "mf_member_list_callback" );
/* Fin de Mundo Funnel Simple Member List */Estilos CSS
Para añadirlo en Apariencia > personalizar o en la hoja de estilos del child theme de tu web:
/* Inicio de CSS Mundo Funnel Simple Member List */
.mf_member_list {
width: 80%;
margin: 0 auto;
}
.mf_member_list ul {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
column-gap: 1.5rem;
row-gap: 1.5rem;
}
.mf_single_user {
display: block;
border-radius: 0.5rem;
-webkit-border-radius: 0.5rem;
box-shadow: 0 0 1rem 0.1rem #eaeaea;
padding: 1rem;
text-align: center;
}
.mf_single_user img {
display: block;
padding-bottom: 0.9rem;
margin: 0 auto;
}
/* Responsive */
@media (max-width: 768px) {
.mf_member_list ul {
grid-template-columns: 1fr;
column-gap: 0;
margin: 0;
}
}
/* Fin de CSS Mundo Funnel Simple Member List */El shortcode a utilizar sería [mf_member_list] y los parámetros que acepta son:
- query_id, que por defecto es el ID se aplicará al contenedor de la lista.
- number, que por defecto es 10.
- order, que por defecto es ASC (endente)
- orderby, criterio de ordenación que por defecto es ‘login’ aunque puede ser: name, display_name, nicename, email o registered.
Ejemplo [ mf_member_list query_id=”mi_directorio” number=”20″ order=”ASC” orderby=”registered” ] Dará como resultado una lista de 20 usuario ordenados de forma ascendente según la fecha de registro.
Y muy importante: No olvides proteger esta página con una membresía para que sea completamente privada. Como por ejemplo, con MemberPress. Además, este código es un ejemplo ilustrativo orientado al aprendizaje.



