Como crear tablas en plugins que estamos diseñando

Aprende a crear tu propia tabla en la base de datos de WordPress
Hoy en día la información es vital y poder almacenarla resulta muy importante. Como sabes nos encontramos explicando cómo diseñar nuestro propio plugin para WordPress.
Tabla de contenidos

Comparte esta entrada

Hoy en día la información es vital y poder almacenarla resulta muy importante. Como sabes nos encontramos explicando cómo diseñar nuestro propio plugin para WordPress.

Ya vimos en entradas anteriores como crear un plugins para WordPress y como añadir un menú a nuestro plugins de WordPress. Con la entrada de hoy queremos enseñarte que opciones tenernos para poder crear una tabla en la base de datos de nuestra página web.

Como ya sabes WordPress utiliza la base de datos para guardar toda la información que necesita para el funcionamiento de este CMS. Todas las paginas, entradas, datos de usuarios o información de otros plugins se guardan en entre las diferentes tablas de su base de datos.

Si nosotros queremos diseñar un plugins que recoja información y la almacene en un lugar seguro tendremos que ver que opciones tenemos.

Como crear tablas en base de datos de WordPress
Como crear tablas en base de datos de WordPress

Tablas de Base de datos WordPress

Por defecto la base de datos de WordPress trae consigo una serie de tablas, algunas que pueden resultarnos muy útiles y otra que guardan información que para nosotros puede ser irrelevante.

Yo como programador de plugins de WordPress he llegado a usar la tabla wp_user, wp_usermeta, wp_post y wp_postmeta, luego en algunos casos más avanzados hemos tenido que tirar de las tablas de Woocommerce.

Como hacer uso de estas tablas

Poco a poco WordPress se está convirtiendo en un gran Framework, gracias a la incorporación hace unos años de su API, hemos obtenidos muchas funciones predefinidas que nos facilitan el acceso a la base de datos de WordPress de una forma segura y sin la posibilidad de dejar la puerta de atrás abierta a la entrada de personas no deseadas.

Para trabajar con las base de datos podemos hacer uso de la clase wpdb para ello solo tenemos que crear  la variable global $wpbd.

Esta clase aglutina varias funciones que podrás ver a continuación:

$wpdb->insert( $table, $data, $format )

Gracias a la función insert podremos insertar una nueva fila dentro de una tabla determinada de nuestra base de datos de la página web.  Para poder ejecutar esta consulta  deberemos tener los siguientes datos

  • El nombre de la tabla ($table)
  • Un array con los datos que queramos guardar ($data)
  • Formato, es opcional, recomendamos dejarlo en blanco.

EJEMPLO:

$wpdb->insert( 'wp_form',   array(    'nombre' => 'Experto Informática',  'email' => '[email protected]'  )  );

 

$wpdb->update( $table, $data, $where, $format = null, $where_format = null );

Gracias a la función updates podremos actualizar cualquier dato  que ya tengamos guardado en nuestra base de datos. Para poder ejecutar esta consultar en nuestro plugins necesitaremos tener los siguientes datos:

  • Nombre de la base de datos $table
  • Array con los datos que queramos actualizar ($data)
  • Información sobre el campo de queremos actualizar ($where)
  • Los formatos son opcionales, recomendamos no ponerlos

Ejemplo

$wpdb->update( 'wp_form',

// Datos que se remplazarán

array(       'nombre' => 'Pepe',      'email' => '[email protected]'    ),

// Cuando el ID del campo es igual al número 1

array( 'ID' => 1 )

);

 

$wpdb->get_results( "$consulta" );

Gracias a la función get_results podemos leer información de las tablas de WordPress fácilmente, solo debemos escribir dentro de la función la consulta que queremos realizar a nuestra base de datos.

Ejemplo:

$registros = $wpdb->get_results( "SELECT nombre, email FROM wp_form" );

 

$wpdb->delete( $table, $where, $where_format = null );

Gracias la función delete, podemos borrar cualquier registro que este guardado en nuestras tablas de WordPress, para ello deberemos indicar la siguiente información:

  • Tabla de la cual queremos borrar el registro
  • Condición para encontrar el registro a borrar

Ejemplo:

$wpdb->delete('wp_form', array('ID' => 1 ));

 

Como crear tablas en base de datos desde un plugins

Para trabajar con la base de datos de WordPress seguiremos usando la clase anteriormente mencionada. Esta clase contiene una función que es la que utilizaremos para crear una tabla en la base de datos de WordPress desde nuestro plugins.

La clase en cuestión es dbDelta(), esta clase en función recibe la consulta de creación de base de datos que queremos ejecutar y la ejecuta automáticamente. A continuación podrás ver un ejemplo de cómo podemos usarla.

global $wpdb;

$nombreTabla = $wpdb->prefix . "demotabla";

$charset_collate = $wpdb->get_charset_collate();

$created = "CREATE TABLE $nombreTabla (

ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,

nombre varchar(60) NOT NULL DEFAULT '',

email varchar(64) NOT NULL DEFAULT '',

url varchar(100) NOT NULL DEFAULT '',

PRIMARY KEY (ID),

) $charset_collate ;";

dbDelta( $created);

 

Vamos a explicar un poco el código de arriba para que se entienda bien como funciona lo anteriormente escrito.

Primero hemos creado la variable wpbd para poder utilizarla en nuestro plugins, luego hemos procedido a crear el nombre de la tabla que vamos a crear, asignándole el prefijo que tiene las tablas de WordPress automáticamente (  $nombreTabla = $wpdb->prefix . "demotabla"; )

Por último tenemos la consulta que crea la tabla dentro de la función dbDelta. En esta consulta hemos especificado el nombre de la tabla, los campos que va a tener esta tabla y la clave primaria.

Como veis crear una tabla en WordPress es bastante sencillo, gracias a las funciones de WordPress.

Si eres un programador avanzado, siempre tendrás también la opción de irte a la base de datos y crear la tabla desde esta, pero si quieres poder ofrecer tu plugins a otras web, esta opción que te hemos enseñado puede ser de mucha utilidad.

 

Otras funciones que podemos utilizar con $WPDB

get_var(): Devuelve una variable ( un único resultado, un valor,..)

get_row(): Devuelve una fila de una tabla de la base de datos

get_col(): Devuelve una columna de una tabla de la base de datos

get_results(): Devuelve una lista de resultados ( las mas común)

insert(): Para realizar interacciones $wpdb->insert( $table, $data, $format )

replace(): Para actualizar tablas y reemplazos

update(): Para actualizar una fila

delete(): Para borrar una fila

query(): Para cualquier consulta

prepare(): Se usa para proteger de ataques de inyección de sql

 

Cuando trabajamos con WordPress, ya sea creando una plantilla o un plugins para darle funcionalidad adicional a nuestra pagina web, deberemos de trabajar usando este tipo de funciones para conectarnos a la base de datos. Ya que de otras formas podemos dejar puertas abierta a posibles ataques de terceras personas.

No olvides comentar si te ha gusta este artículo y compartirlo en tus redes sociales

¿Buscas Hosting?

LucusHost, el mejor hosting

Sígueme en Redes Sociales

Sobre la firma

Luis Alberto Agea Duran

Diseñador Web Freelancer desde 2016. Previamente, trabajé para empresas como Estepona Web y en Franclima Hostelería. He colaborado con otras empresas en proyectos como MasEmpresas de la Confederación de Empresarios de Andalucía. Actualmente diseño páginas web con WordPress y Tiendas Online

Apúntate a nuestro boletín

También te puede interesar...

Ir al contenido