Crear tabla mysql al activar un plugin wordpress

1 noviembre , 2010  |  blogs, MySql, PHP, Plugins, Principiantes, Wordpress

En muchas ocasiones necesitamos crear  tablas en base de datos que interactúen con nuestros plugins, por ejemplo plugins que se encarguen de administrar clientes de una empresa, artículos de una tienda, etc.

La forma más adecuada, es crear una tabla automáticamente al activar el plugin. En  este post voy a explicar paso a paso cómo hacerlo de forma muy simple. Además al final del post también podrás descargarte el plugin que he creado para el ejemplo.

Vamos a crear un plugin que maneje los clientes de una determinada empresa, los cuales seran almacenados en una tabla mysql y mostrados por nuestro plugin, de forma que se al activar el plugin, se cree la tabla donde se almacenarán los clientes.

En primer lugar tendremos que hacer una función que cree nuestra tabla, y en segundo lugar llamar a la función que hemos creado para que se ejecute al activar el plugin:

1.-Implementar una función que cree la tabla MySql

function clientesAC_install()
{
	global $wpdb;
	$table_name = $wpdb->prefix . "clientesAC";

	$sql = " CREATE TABLE $table_name(
		IDCliente int(11) NOT NULL AUTO_INCREMENT ,
		nombre char(50) NOT NULL ,
		apellido1 char(50) NOT NULL ,
		apellido2 char(50),
		web char(100),
		fechaAlta date NOT NULL ,
		PRIMARY KEY ( `IDCliente` )
		) ;";

	require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
	dbDelta($sql);
}
?>

2.-Llamar a la función que hemos creado

WordPress provee un gancho (‘hook’) cuyo propósito es llamar a la función que se ejecutará cuando el plugin sea activado. La vemos en el ejemplo:

<?
	phpregister_activation_hook(__FILE__,'clientesAC_install');
?>

Observamos como el segundo parámetro es el nombre que hemos elegido para la función que crea nuestra tabla.

Si quieres puedes descargar el ejemplo aquí.


4 Comentarios


  1. En serio a alguien le ha funcionado? Lo digo porque estoy intentando hacer un plugin y no hay manera de que se cree la tabla, el plugin se activa bien pero ni rastro de la nueva tabla.

    Pd. El enlace del ejemplo esta roto

  2. Antonio Carvajal

    Ya está arreglado el link, gracias por el aviso.

    En mi blog tengo varios plugin que crean tablas del modo que indico en el post. Si no te funciona puedes poner más concretamente cómo lo estás haciendo para ver si te podemos ayudar.

  3. Excelente, voy a probarlo. Me servira de mucho. Saludos

  4. Efraín Renderos

    Si funciona perfectamente, muy buen aporte, se agradece

    Una consulta, como haces para poder ver la gestión en una Page nueva por ejemplo

    Para poder llamar las funciones que muestran el panel.php?

Deja un comentario