Como crear tus tablas de Base de Datos con WordPress


Poco a poco WordPress esta tendiendo a ser un framework  mas que un cms y con la incorporacion de la nueva API Rest tendremos mucha mas potencia para ello.

En este minitutorial vamos a aprender a  crear tus tablas de Base de Datos con WordPress.  En otros capitulos veremos como crear, editar, borrar esos datos como si fuera un content post type.

Pasos para crear tu propia tabla:

  1. Nos creamos un plugin ( no tiene porque estar en un plugin pero siempre sera mejor que añadir el codigo en el tema
  2. Nos creamos una funcion en nuestro ejemplo se llama db_plugin_name();
  3. Registramos la funcion para que cuando el plugin se active se llame con register_activation_hook
<?php
/**
 * @package db demo plugin
 * @version 0.1
 */
/*
Plugin Name: db demo plugin
Plugin URI:  https://www.danielcastanera.com/crear-tus-tablas-base-datos-wordpress/
Description: Simple plugin que crea una tabla dummy en WordPress 
Author: Daniel Castanera Garrido
Version: 0.1
Author URI: http://danielcastanera.com
*/


// ejemplo de plugin para crear una tabla en WordPress 
function db_plugin_sample() {
   // aqui crearemos la tabla
} 
register_activation_hook( __FILE__, 'db_plugin_sample' ); 
  
?>

Como veis de momento sencillo , asi que ahora vamos a escribir nuestra funcion.

Para trabajar con base de datos en WordPress usamos la clase wpbd  esta clase contiene una seria de funciones para interactura con la base de datos.

Si queremos utilizar el prefijo del nombre de las tablas que usamos en WordPress , u otras funciones tenemos que declararla como global $wpbd

Otra funcion que necesitaremos para usar las consultas es la funcion dbDelta que nos servira para lanzar una query.

function db_plugin_sample() {

  global $wpdb;
  $nombreTabla = $wpdb->prefix . "demotabla";
  
  $created = dbDelta(  
    "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),
      KEY email (email)
    ) CHARACTER SET utf8 COLLATE utf8_general_ci;"
  );
}

Veis que es bastante sencillo crear una tabla en un plugin para WordPress.

 

ejemplo_custom_database_api

 

Ya sabiendo que con la funcion dbDelta podeis lanzar vuestras propias consultas no es necesario meter las tablas en un plugin , podeis crearlas en la base de datos.

Si quisierais rellenar esta tabla con valores por defecto lo unico que tendriais que hacer es o reutilizar la funcion o crearos otra funcion y añadir los inserts.

 

 

Aqui os dejo el ejemplo completo.

<?php
/**
 * @package db demo plugin
 * @version 0.1
 */
/*
Plugin Name: db demo plugin
Plugin URI:  https://www.danielcastanera.com/crear-tus-tablas-base-datos-wordpress/
Description: Simple plugin que crea una tabla dummy en WordPress 
Author: Daniel Castanera Garrido
Version: 0.1
Author URI: http://danielcastanera.com
*/


// ejemplo de plugin para crear una tabla en WordPress 
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );

function db_plugin_sample() {

  global $wpdb;
  $nombreTabla = $wpdb->prefix . "demotabla";
  
  $created = dbDelta(  
    "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),
      KEY email (email)
    ) CHARACTER SET utf8 COLLATE utf8_general_ci;"
  );
} 
register_activation_hook( __FILE__, 'db_plugin_sample' );
 
  
?>