WordPress obtiene usuario por metadatos

2 minutos de lectura

avatar de usuario
Prashant

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

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

avatar de usuario
anroots

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

Usa la función

get_users($args)

(Documentación de WP)

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

get_users(array(
    'meta_key' => 'parent_id',
    'meta_value' => '42'
))

  • Excelente. Estaba tratando de usar la opción “meta_query”, que no funcionaba. Esto funcionó perfectamente. Gracias.

    – jake

    9 de agosto de 2012 a las 10:31


avatar de usuario
OzzyCheco

La forma simple de obtener un usuario por sus metadatos es:

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

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

    – Señor

    3 de marzo de 2015 a las 6:39

Así es como puede obtener usuarios en función de un rol personalizado 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 la consulta anterior, solo quiero aquellos usuarios a los que asigné el rol de controlador, y están aprobados y disponibles. Los campos aprobados y disponibles son campos 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, echa un vistazo a mi fuente abierta en github.com/patrickingle

avatar de usuario
Jem

Aquí está la página del códice de WordPress detallando cómo usar el get_users($arg); función.

Contiene ejemplos de cómo crear funciones personalizadas para obtener varias partes de los datos del usuario. Tendrás que construir naturalmente y hacer algunos de tus propios cambios para que quede como quieres.

Además aquí hay un enlace a una función que alguien creó que obtendrá datos de usuario en función de los roles dentro de wordpress. Puede configurarlo de muchas maneras diferentes con algunos ajustes, pero esto le permitirá filtrar sus resultados de una manera más poderosa.

¿Ha sido útil esta solución?