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..
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..
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..
$ 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
filasACTUALIZAR
filas existentesQuizá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..
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:
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..