Fecha de publicación: 23-07-2012 | Autor: Icomercial | Categoría: SoftwareUtilidades

El motor de nuestro sitio web funciona gracias a WordPress, un sistema de archivos web que requiere una  base de datos MySql para guardar sus contenidos y configuraciones.

Cuando queremos llevar a cabo algún desarrollo personalizado, que implique acceder a la base de datos del sistema, podemos utilizar la clase “wpdb” con comandos como el siguiente:

<?php $user_count = $wpdb->get_var( $wpdb->prepare( “SELECT COUNT(*) FROM $wpdb->users;” ) ); echo “<p>User count is {$user_count}</p>”; ?>

Sin embargo, cuando queremos acceder a una base distinta a la de wordpress, no siempre basta con anteponer el prefijo del nombre de la base de datos. Por ejemplo al insertar datos en una base de datos externa, por alguna razón que desconozco la clase wpdb no me funcionó, por lo que gracias a la ayuda de este post (en inglés) encontré la solución.

Cuando se accede a la base de datos de WordPress, podemos utilizar la variable global $wpdb. Esta variable utiliza las constantes definidas en el archivo de configuración wp-config.php de nuestro sitio, para conectarse y obtener los datos requeridos. Pero si tienes problemas para conectarse a una segunda base de datos, puedes hacer lo siguiente.

$newdb = new wpdb($DB_USER, $DB_PASSWORD, $DB_NAME, $DB_HOST);
$newdb->show_errors();

Este código se puede agregar en el archivo functions.php de nuestro template o en algún archivo específico de nuestro proyecto. Luego usas el $newdb de la misma forma como se usaría el $wpdb o la clase ez_sql en la cual se inspira esta variable.