2011-05-24 18 views
39

¿Cómo puedo recuperar todos los usuarios registrados en mi blog de WordPress que tienen un metadato particular?WordPress obtener usuario por metadatos

Por ejemplo, he hecho una opción para agregar un metadato personalizado para cada usuario registrado que tenga una clave meta como parent_id. Si quiero enumerar todos los usuarios que tienen parent_id como 2, ¿cómo puedo hacer esto?

Respuesta

57

Desde WP v3.1 es ridículamente fácil buscar a un usuario por su clave meta.

Utilice la función

get_users ($ args)

(WP Documentation)

La función toma una serie de parámetros, en su caso de que necesite

get_users (array ('meta_key' => 'parent_id', 'meta_ value '=>' 42 '))

+0

Excelente. Estaba intentando usar la opción "meta_query", que no funcionaba. Esto funcionó perfectamente. Gracias. – Jake

4

Here is the codex page from Wordpress que detalla cómo utilizar la función get_users($arg);.

Contiene ejemplos de cómo crear funciones personalizadas para recuperar varias partes de los datos del usuario. Deberá construir naturalmente y hacer algunos de sus propios cambios para obtenerlo como lo desee.

Adicionalmente here is a link a una función que alguien construyó que obtendrá datos de usuario basados ​​en roles dentro de wordpress. Puede configurarlo de muchas maneras diferentes con algunos tweeking, pero esto le permitirá filtrar sus resultados de una manera más poderosa.

17

manera simple cómo conseguir un usuario por su metadatos es:

$user = reset(
get_users(
    array(
    'meta_key' => $meta_key, 
    'meta_value' => $meta_value, 
    'number' => 1, 
    'count_total' => false 
) 
) 
); 
+4

Para cualquiera que solo necesite la identificación de usuario. Agregue un argumento de matriz ''fields' => 'ids''. Esto hará que la consulta sea más ligera. – Sisir

4

Aquí es cómo se puede conseguir que los usuarios en base a una función personalizada y múltiples claves de metadatos,

$available_drivers = get_users(
      array(
       'role' => 'driver', 
       'meta_query' => array(
        array(
         'key' => 'approved', 
         'value' => true, 
         'compare' => '==' 
        ), 
        array(
         'key' => 'available', 
         'value' => true, 
         'compare' => '==' 
        ) 
       ) 
      ) 
     ); 

Explicando lo anterior consulta, solo deseo que los usuarios a los que asigné el rol de controlador, estén aprobados y disponibles. Los campos aprobados y disponibles son personalizados creados con ACF como campos Verdadero/Falso.

Si tiene metadatos adicionales para probar, agregue otro elemento de matriz a la matriz meta_query.

Mientras tanto, compruebe mi código abierto en github.com/patrickingle

Cuestiones relacionadas