Usando WordPress para el desarrollo de aplicaciones web WP_User_Query

En esta serie, hemos analizado cómo se puede usar WordPress para desarrollar aplicaciones web de forma muy similar a una serie de marcos diferentes y otras herramientas disponibles..

Comenzando en el último artículo, comenzamos a ver las diferentes opciones que tenemos relacionadas con la consulta de los datos de WordPress. Primero, revisamos WP_Query.

En este artículo, continuaremos observando las opciones disponibles para recuperar información de la base de datos observando WP_User_Query después de lo cual nos centraremos en cómo podemos ejecutar consultas directas de SQL en la base de datos.

Pero por ahora, echemos un vistazo a lo que WordPress nos ofrece en la forma de administrar a nuestros usuarios, su información y sus metadatos asociados..

Consultar la base de datos: un refresco

Antes de comenzar a analizar la API real, revisemos rápidamente parte de la información sobre la base de datos de WordPress, de modo que hayamos establecido un nivel común de información con el cual trabajar para el resto del artículo, la API y los ejemplos que utilizamos. estaré cubriendo.

En el último artículo, mencionamos tres puntos específicos:

  1. Consultar la base de datos de WordPress se refiere al acto de recuperar información de la base de datos (como es el caso con el resto de aplicaciones web respaldadas por bases de datos).
  2. Hay varias formas de consultar la base de datos, algunas de las cuales son más correctas que otras en algunas situaciones, y debemos entender qué formas se prestan a la mejor situación..
  3. Es importante comprender las API para saber qué tenemos disponible, qué beneficios ofrece cada una y qué situaciones son las más adecuadas para una API determinada..

Cuando nos cubrimos WP_Query, revisamos cómo se puede usar para recuperar publicaciones, páginas, tipos de publicaciones personalizadas, taxonomías relacionadas, categorías, términos, etc..

Introduciendo WP_User_Query

similar, WP_User_Query Ofrece gran parte de la misma funcionalidad pero dentro del contexto de los usuarios. El Codex define la consulta:

WP_User_Query es una clase, ..., que permite consultar las tablas de la base de datos de WordPress 'wp_users' y 'wp_usermeta'.

A diferencia de la definición inicial de WP_Query, Esto es menos técnico y relativamente fácil de entender. especialmente si estás familiarizado con el wp_users mesa y el wp_usermetadata mesas.

Pero si no lo está, no es gran cosa: vamos a cubrir todo lo que se necesita no solo para comprender las tablas, sino también para entender la API..

Cómo usar WP_User_Query

los wp_users mesa y el wp_usermetadata Las tablas son responsables de almacenar los datos del usuario..

El esquema de tabla

La información para cada una de las tablas está disponible en el Codex (que puede encontrar aquí y aquí), y recomiendo que todos la revisen; sin embargo, la información sobre cada tabla se puede simplificar de la siguiente manera:

  • los usuarios La tabla mantiene la lista de usuarios en el sistema y la cantidad mínima de información para que un usuario acceda a WordPress. Esto incluye la ID asignada automáticamente, su inicio de sesión, contraseña, cómo mostrar su nombre, su dirección de correo electrónico, cuándo se registraron, su estado y la URL de su sitio (si se especifica).
  • los usermeta La tabla se utiliza para almacenar más información genérica a través de pares clave / valor simples. Es decir, al igual que con la publicación de datos, podemos asociar la información con los usuarios utilizando sus ID, meta claves y meta valores..

Para ver esto en acción, puede echar un vistazo a cualquier información de la tabla de la base de datos de WordPress, y encontrará que aquí es donde información como la Nombre, Apellido, Capacidades, y así.

Lo bueno es que si está creando una aplicación, entonces la tabla meta proporciona mucha flexibilidad en cuanto a la cantidad de información que realmente puede asociar con cualquiera de sus usuarios..

Usando WP_User_Query

En primer lugar, tenga en cuenta que configurar una consulta de usuario es muy parecido a configurar una consulta de usuario. WP_Query. Con eso, quiero decir que tomas una instancia de la clase al pasar una matriz de argumentos al constructor.

Ahora, en lo que respecta a los argumentos, se puede especificar cualquier cosa que esté contenida en las tablas de base de datos asociadas. Por ejemplo, puedes buscar usando:

  • el rol del usuario,
  • coincidencias de cadena en columnas (como el ID, el inicio de sesión, la URL, etc.),
  • dirección de correo electrónico,
  • y así.

Pero hay más que eso. También puede especificar parámetros relacionados con los metadatos para que pueda consultar a varios usuarios, por ejemplo, en función de su función y una recopilación de metainformación del usuario..

Vamos a echar un vistazo a esto un poco más en detalle momentáneamente, pero también vale la pena señalar que puede construir consultas aún más avanzadas que se ocupan de incluir metadatos de usuario, excluyendo metadatos de usuario, cómo y desea ordenar los datos. Datos (por ejemplo, por nombre de usuario ascendente), e incluso parámetros de paginación para que podamos hojear los registros de los usuarios con facilidad..

Un ejemplo práctico

Por supuesto, ¿de qué sirve hablar de una API sin mirar realmente cómo usarla? En el siguiente ejemplo, vamos a tomar un ejemplo de cuentas de usuario y luego iteraremos en la consulta hasta que hayamos construido una que intente demostrar una variedad de características que proporciona.

Dicho esto, digamos que queremos lograr lo siguiente:

  • recuperar todos los administradores,
  • que tienen un nombre especificado,
  • Ordenados por su fecha de registro en orden ascendente.,
  • y paginar para que solo recuperemos un número de usuarios por página

Entonces empecemos. Recuerde, vamos a construir esta consulta línea por línea, por lo que debería ser relativamente fácil de entender a medida que continúa evolucionando..

Si, en algún momento, tiene preguntas sobre lo que está pasando, no dude en escribirlas en los comentarios..

Primero, queremos especificar que queremos incluir a todos los administradores:

 $ args = array ('role' => 'Administrator'); $ user_query = new WP_User_Query ($ args);

Después de eso, queremos asegurarnos de que tengan su primer nombre y el último nombre especificado. Dado que esa información se almacena en la tabla de metadatos, necesitaremos los parámetros de usuario para la meta consulta..

Específicamente, le pediremos que recupere a todos los administradores que tienen un nombre que se especifica (o, más bien, que no está vacío).

 $ args = array ('role' => 'Administrator', 'meta_query' => array ('meta_key' => 'first_name', 'meta_value' => "meta_compare '=>'! = ')); $ user_query = nuevo WP_User_Query ($ args);

A continuación, vamos a ordenar los resultados por fecha de registro de los administradores en orden ascendente:

 $ args = array ('role' => 'Administrator', 'meta_query' => array ('meta_key' => 'first_name', 'meta_value' => "meta_compare '=>'! = ')' orderby '=> 'registrado', 'orden' => 'ASC'); $ user_query = new WP_User_Query ($ args);

Y, por último, diremos que queremos retirar cinco registros a la vez:

 // El número de registros que se mostrarán en una página $ display_count = 5; // Necesitamos obtener el número de la página actual en la que estamos. // Esto es útil para calcular el desplazamiento correcto $ page = get_query_var ('paginado')? get_query_var ('paginado'): 1; // Después de eso, calcule el desplazamiento $ offset = ($ page - 1) * $ display_count; $ args = array ('role' => 'Administrator', 'meta_query' => array ('meta_key' => 'first_name', 'meta_value' => "meta_compare '=>'! = ')' orderby '=> 'registered', 'order' => 'ASC', 'number' => $ display_count 'offset' => $ offset); $ user_query = new WP_User_Query ($ args);

Y hemos terminado. Ahora es una cuestión de iterar a través de la consulta para generar nuestros resultados. Desafortunadamente, es posible que todos tengamos una opinión diferente sobre cómo queremos hacer esto, así que tenga en cuenta que el bucle que estoy mostrando es solo un ejemplo (frente a la ejemplo):

 // Si hay resultados basados ​​en nuestros criterios ... $ results = "; if (! Empty ($ user_query-> results)) // Para cada uno de los resultados, vamos a mostrar el nombre de los administradores para cada ($ user_query-> results como $ usuario) $ resultados. = 'El nombre para mostrar es:'. $ usuario-> nombre_impresión; $ resultados. = '
'; $ resultados. = get_user_meta ($ user-> ID, 'first_name', true); $ resultados. = '
'; // Muestra la información en la pantalla. echo $ resultados;

Y nota: una diferencia de WP_User_Query versus WP_Query es que no hay necesidad de restablecer ningún tipo de datos de publicación porque no estamos trabajando con nada más que con un bucle autónomo.

Cuándo usar WP_User_Query

En este punto, la búsqueda surge naturalmente de cuando es una buena idea usar WP_User_Query, y es probable que obtenga diferentes respuestas de diferentes personas, como una vista previa para usar otros métodos para recuperar su información.

Pero, en general, si voy a recuperar información de la base de datos que se ocupa directamenteestrictamente con los usuarios, entonces uso WP_User_Query.

Ahora, dado que el conjunto de resultados puede devolverse de una manera que técnicamente se podría fusionar, o al menos volver a trabajar con otro conjunto de datos, definitivamente es posible hacerlo; Sin embargo, personalmente creo que esto requiere un poco de experiencia que puede que no se ajuste a la factura de todos..

En otras palabras, siéntete libre de usarlo como quieras, pero trátalo con cuidado..

Siguiente, consultas directas contra la base de datos

Asi que con WP_Query y WP_User_Query detrás de nosotros, tenemos una API más en la que podemos buscar para completar nuestra discusión, y esa es la capacidad de consultar directamente la base de datos de WordPress.

En el artículo final que trata las consultas, analizaremos esta API, terminaremos nuestra discusión y luego veremos la revisión final de todo lo que hemos cubierto a lo largo de esta serie..