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

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.

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.

 

 

 

  1. Muchas gracias Jose, si seria bueno usar get_charset_collate, a ver si tengo un rato y amplio el ejemplo y lo pongo

  2. Hola Daniel. Soy nuevo en WordPress, y me está costando mucho visualizar en una página una tabla de mi Base de Datos, para luego poder editar cualquier registro. ¿Podrías echarme una mano?

  3. Muy buenas Jose, tienes varias formas de hacerlo pero en todas te tienes que hacer en definitiva el CRUD y un plugin para ello.
    Lo mas fácil es tener una single page dentro de tu WordPress y hacerlo con angular, react, vuejs o jquery :P, sobre una sola pagina hacer las llamadas a la base de datos.
    Otra opción es intentar que se asemeje a los estilos y funciones para ello debes usar clases de WordPress y extender de ellas como WP_List_Table para el listado de tablas ,.. pero en definitiva tienes que hacerte tu propio listar , editar, crear , borrar ( CRUD)
    Te dejo un enlace de como trabajar con la base de datos en WordPress https://codex.wordpress.org/Class_Reference/wpdb

  4. Buenas me parece muy bueno. Mi duda es que requiere generar varias tablas pero al hacerlo no me hace el query.

    global $wpdb;
    // tabla de los estado
    $estado = $wpdb->prefix . “bdmexico_tbestados”;
    $created_estado = dbDelta(
    “CREATE TABLE $estado (
    ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    codigo varchar(60) NOT NULL DEFAULT ”,
    nombre varchar(100) NOT NULL DEFAULT ”,
    electores varchar(100) NOT NULL DEFAULT ”,
    participantes varchar(100) NOT NULL DEFAULT ”,
    PRIMARY KEY (ID),
    KEY email (email)
    ) CHARACTER SET utf8 COLLATE utf8_general_ci;”
    );
    // tabla de municipio
    $municipio = $wpdb->prefix . “bdmexico_tbmunicipios”;
    $created_municipio = dbDelta(
    “CREATE TABLE $municipio (
    ID bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    nombre varchar(100) NOT NULL DEFAULT ”,
    estado varchar(50) NOT NULL DEFAULT ”,
    electores varchar(100) NOT NULL DEFAULT ”,
    participantes varchar(100) NOT NULL DEFAULT ”,
    PRIMARY KEY (ID),
    KEY email (email)
    ) CHARACTER SET utf8 COLLATE utf8_general_ci;”
    );

  5. Hola Victor, en la consulta estas usando campo email y no existe en la tabla, asi que te estara dando un error pero no te lo dice. Lo mejor para eso que mires el log de php

    Un saludo.

Comments are closed.