Los Estándares de Codificación de WordPress Consultas de Base de Datos y Formateo de Consultas SQL

Aparte del resumen que vamos a proporcionar como el último artículo de esta serie, esta es la última explicación de los Estándares de codificación de WordPress que vamos a cubrir en esta serie..

Vamos a cubrir los matices de las consultas de base de datos y cómo formatear SQL dentro del contexto de su código.

Por supuesto, esto no sería sin su propio conjunto de advertencias: en términos generales, hay API que ya están disponibles que pueden evitar que tengamos que escribir SQL por nuestra cuenta; Sin embargo, estas API no detectan todos los casos que realmente necesitamos.

Después de todo, ¿cómo pueden los desarrolladores que implementan API saber exactamente qué y cómo vamos a construir algo??

Con ese fin, vamos a echar un vistazo a las API que están disponibles para ejecutar consultas de base de datos, cómo usarlas y luego cómo definir nuestras propias consultas cuando las API se quedan cortas..


Consultas de base de datos en WordPress

Como se mencionó en la introducción de este artículo, hay varias API que nos permiten elaborar nuestras propias consultas sin necesidad de escribir SQL.

La razón por la que es importante familiarizarse y aprender estas API es para que el código que escriba se escriba sobre el nivel de abstracción proporcionado por WordPress para asegurarse de que las consultas estén lo más optimizadas posible (dada la versión actual).

Además, aumenta la probabilidad de que cualquier código que escriba hoy sea compatible con versiones futuras de WordPress principalmente porque, de nuevo, está escrito en contra del nivel de abstracción proporcionado por WordPress.

Si el esquema de la tabla cambia, los parámetros se asignan a cláusulas diferentes en el SQL, etc., no tiene que preocuparse porque la API se encargará de usted..


¿Qué son las API de consulta??

Y qué son las API de consulta que define WordPress?

  • WP_Query está destinado a ser utilizado para consultar información sobre cualquier tipo de publicación y su autor relacionado, categoría, taxonomías, tipo, estado, etc..
  • WP_User_Query está destinado a ser utilizado cuando necesitamos recuperar información de la tabla de usuario y la tabla de usermeta. También nos permite trabajar con roles, campos personalizados y más.

También hay otros métodos de la API de WordPress que hacen que sea realmente fácil agarrar cosas de varias tablas de bases de datos, algunas de las cuales ni siquiera requieren un número significativo de argumentos:

  • get_post_meta recupera los metadatos asociados con una ID de publicación dada. Puede recuperar todos los metadatos o el valor de una clave específica.
  • get_comment_meta recupera los metadatos asociados con un ID de comentario dado. Puede recuperar todos los metadatos o el valor de una clave específica.
  • get_user_meta recupera los metadatos asociados con una ID de usuario determinada (¿estás empezando a ver un tema aquí?). Puede recuperar todos los metadatos o el valor de una clave específica.

Tenga en cuenta que el propósito de este artículo no es profundizar en cada una de estas API (y hay más de ellas), solo para darlas a conocer a aquellos de ustedes que no las han utilizado anteriormente, y darles una breve definición de cuándo pueden ser utilizados.

Por último, estas son las API que debe examinar primero antes de escribir su propio SQL. Para lo que vale, hablo por experiencia aquí: ha habido ocasiones en las que he escrito código (o incluso publicaciones de blog) que se han roto debido a que no estaban usando las mejores prácticas para consultar la base de datos.

Pero, como se mencionó anteriormente, estas API no pueden predecir todos Casos en los que necesitamos escribir nuestras consultas de base de datos. En esas situaciones, WordPress proporciona un objeto que nos permite interactuar directamente con la base de datos..


Todo sobre $ wpdb

Eso nos lleva a $ wpdb. Esencialmente, $ wpdb es un objeto que está disponible en WordPress que nos permite interactuar directamente con la base de datos. Esto significa que podemos escribir SQL en bruto y hacer que se ejecute en la base de datos subyacente.

Además de eso, podemos seleccionar cómo queremos que se devuelvan los datos: arrays, objetos, a veces valores únicos, etc. De hecho, el objeto ofrece la capacidad de realizar las siguientes funciones:

  • SELECCIONAR Variables, filas, columnas y resultados genéricos.
  • INSERTAR filas
  • ACTUALIZAR filas existentes

Quizás la mayor preocupación al introducir SQL en bruto en su proyecto es que está abriendo su proyecto a un posible comportamiento malicioso. Aunque podría hacer este caso para cualquier lógica de base de datos, la verdad es que las API deberían hacer un buen trabajo protegiéndonos de algo así..

En general, lo hacen.

Pero $ wpdb Tampoco está exento de eso. Hay formas específicas de interactuar con la base de datos para que pueda proteger sus consultas contra la inyección de SQL.

Para reiterar un punto de las Normas de Codificación:

Si debe tocar la base de datos, póngase en contacto con algunos desarrolladores publicando un mensaje en la lista de correo de wp-hackers. Es posible que quieran considerar crear una función para la próxima versión de WordPress para cubrir la funcionalidad que desea.

Entonces, en resumen, si la API no cumple con lo que necesita, entonces $ wpdb Puede ser su mejor opción, pero le recomiendo que la use solo si ha agotado el resto de sus opciones..


Conclusión

En este punto, hemos examinado los Estándares de Codificación en un nivel de detalle que espero le brinde información que no tenía anteriormente al comenzar esta serie..

Para concluir este post en particular, la mayor ventaja que quiero que todos tengan es esta:

  1. Compruebe la API antes de escribir SQL en línea. Aunque escribir consultas directas de SQL puede ser más fácil, Especialmente para aquellos que se realizan con sistemas de bases de datos, ¡resista la tentación! Verifique primero la documentación de la API..
  2. Si no puede encontrar una función API para realizar su trabajo, escriba SQL. Si tu debe escriba SQL, asegúrese de tener todo lo necesario en cuenta: cómo desea que se devuelvan sus datos, haya preparado adecuadamente sus consultas y esté manejando adecuadamente los datos cuando se devuelvan.

Si haces eso, entonces deberías tener tus bases cubiertas.

En el artículo final de esta serie, tendremos una guía rápida que resume todo lo que hemos discutido a lo largo de la serie..