WordPress: cómo crear una tabla para un plugin

Logo de WordPress

Este es un pequeño codekata o howto para crear un plugin que cree una tabla en la base de datos. Como reza la documentación oficial, no se recomienda crear nuevas tablas para almacenar los datos, pero según que caso, puede ser la mejor opción, tendremos entonces que ocuparnos nosotros de su mantenimiento.

El siguiente código simplemente es un esqueleto de plugin con el que se puede crear una tabla en el momento de la activación de dicho plugin. También cuando se desactiva el plugin se borrará dicha tabla.

Al grano, el código fuente

El siguiente código lo puedes poner en el fichero wp-content/plugin/jnj-test.php, por ejemplo:

<?php
/**
 * Plugin Name: Jnj create table
 * Plugin URI: https://jnjsite.com/
 * Description: For testing purpuoses only..
 * Version: 1.0
 * Author: Jaime Niñoles
 * Author URI: https://jnjsite.com/.
 */
defined('ABSPATH') or die('No no no');

function jnj_activation()
{
    global $wpdb;
    $sql = 'CREATE TABLE '.$wpdb->prefix.'a_new_table ('
        .'col1 DATETIME NOT NULL,'
        .'col2 VARCHAR(256) NOT NULL,'
        .'col3 VARCHAR(64) NOT NULL'
        .');';
    $wpdb->get_results($sql);
}

function jnj_deactivation()
{
    global $wpdb;
    $sql = 'DROP TABLE '.$wpdb->prefix.'a_new_table;';
    $wpdb->get_results($sql);
}

register_activation_hook(__FILE__, 'jnj_activation');
register_deactivation_hook(__FILE__, 'jnj_deactivation');

A continuación podemos ir a la pantalla de plugins y lo veremos listo para activar:

WordPress, creando tabla con un plugin..

Ahora simplemente al activarlo creará la tabla, y al desactivarlo la borrará.

¡Un saludo!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *