Es muy común que cuando somos desarrolladores WordPress muchas veces terminemos creando aplicaciones hibridas en las que no es suficiente solo con la utilización de todo el core de WordPress, como el uso de Querys dentro de nuestra instalación, si no que necesitemos interactuar de manera “nativa” por medio de PHP y MySQL para realizar consultas a nuestra base de datos WordPress ya viene integrado con el objeto o clase wpdb que viene ayudarnos. Conoces la manera correcta de manipular la base de datos de WordPress desde PHP?
En el 2017 escribí un articulo llamado Utilizando la clase wpdb de WordPress el cual ha tenido mucha actividad desde el momento de su publicación, hoy quiero ampliar un poco mas en este tema dividiendo este en una serie de 4 post acerca de como manipular la clase $wpdb en los 4 principales tipos de consultas o CRUD (Create, Read, Update & Delete).
Este post es el primero de la serie relacionado con la manipulación de la base de datos por medio de la clase $wpdb de WordPress.
Qué es la clase $wpdb ?
Antes de comenzar con esta serie de posts es importante conocer qué es y cómo funciona la clase $wpdb.
WordPress define a la clase llamada wpdb, como un conjunto de funciones que se utilizan para interactuar con una base de datos. Su propósito principal es proporcionar una interfaz con la base de datos de WordPress, pero puede usarse para comunicarse con cualquier otra base de datos apropiada. El código fuente de la clase se basa libremente en la clase ezSQL; escrito y mantenido por Justin Vincent.
Proteja sus consultas
Algunos de los métodos de la clase wpdb toman una declaración SQL como entrada. Todos los valores que no son de confianza en una instrucción SQL deben escaparse para evitar ataques de inyección SQL. Algunos métodos escaparán de SQL por usted; otros no lo harán. Consulte la documentación para estar seguro antes de utilizar cualquier método de esta clase.
Como usar el Objeto $wpdb ?
WordPress proporciona una variable de objeto global $wpdb, que es una instanciación de la clase wpdb definida en /wp-includes/wp-db.php
. Por defecto, $wpdb instancia para hablar con la base de datos de WordPress. Para acceder a la clase $wpdb desde WordPress con PHP, primero tienes que declarar $wpdb como una variable global usando el global keyword, o usando el superglobal $GLOBALS de la siguiente manera:
// 1er metodo: Declarando la variable $wpdb como global global $wpdb; $results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT ); // 2do metodo: Utilizando el superglobal (no es la mejor forma) $results = $GLOBALS['wpdb']->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );
El $wpdb objeto no se limita a las tablas predeterminadas creadas por WordPress; se puede usar para leer datos de cualquier tabla en la base de datos de WordPress (como tablas de plugins personalizados). Por ejemplo, para seleccionar alguna información de una tabla personalizada llamada “myplugin”, puede hacer lo siguiente.
$myrows = $wpdb->get_results( "SELECT id, name FROM myplugin" );
El objeto $wpdb puede comunicarse con cualquier cantidad de tablas, pero solo con una base de datos a la vez; por defecto la base de datos de WordPress. En el raro caso de que necesite conectarse a otra base de datos, deberá crear una instancia de su propio objeto de la clase $wpdb con su propia información de conexión a la base de datos. Para configuraciones extremadamente complicadas con muchas bases de datos, puede considera utilizar hyperDB en su lugar.
- SELECT – Cómo leer datos en WordPress usando la clase wpdb?
- INSERT – Cómo insertar información en una base de datos desde WordPress (Pronto…)
- UPDATE – Cómo actualizar campos en una base de datos desde WordPress (Pronto…)
- DELETE – Cómo eliminar campos en una base de datos desde WordPress datos (Pronto…)