Como criar um plugin para wordpress – Parte 2
Instalando seu plugin
Como disse no artigo anterior, vamos agora criar uma função de instalação para o plugin, para que todas vez que ele for ativado ela execute.
Segue o código abaixo e também os comentários inline.
/**
* Esta função de instalação cria a tabela no banco de dados, e pode ser implementado
* também outras a ela, para que seja sempre executado ao se instalar o plugin
*
* @global $wpdb Database Object
*/
function daniel_developer_plugin_install()
{
global $wpdb;
/**
* Versão da estrutura da tabela
*/
$intDBVersion = '0.1';
/**
* Neste arquivo está a função dbDelta, e ela não é inicializada por padrão
*/
require_once ABSPATH . 'wp-admin/upgrade-functions.php';
// Cria a tabela daniel_developer_agenda
$sql = "CREATE TABLE " . $wpdb->prefix . 'daniel_developer_agenda' . " (
agenda_id INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
agenda_nome VARCHAR( 50 ) NOT NULL,
agenda_telefone VARCHAR( 10 ) NOT NULL
) ENGINE = MYISAM COMMENT = 'Tabela usada pelo plugin Daniel Developer Plugin';
";
/**
* Esta função examina a estrutura da tabela, compara a estrutura e adiciona ou modifica a tabela se necesário
*/
dbDelta($sql);
/**
* Grava a versao da estrutura da tabela
*/
add_option('intDBVersion', $intDBVersion);
}
Agora, temos que chamar o Hook de ativação, para que a função seja executada e que o wordpress a interprete como instalação.
Segue o código abaixo.
add_action('activate_daniel-developer-plugin/daniel-developer-plugin.php', 'daniel_developer_plugin_install');
Se tudo ocorreu bem, a tabela ficará assim no banco de dados.

É isso pessoal, qualquer coisa, postem suas dúvidas.
E para a próxima etapa vou mostar como se criar menus e submenus para a administração do seu plugin.
Abs…



Ahhhh Sooooh (y)
Hi! I like your srticle and I would like very much to read some more information on this issue. Will you post some more?
I’m glad that after surfing the web for uch a long time I have found out this information. I’m really lucky.
Olá, Daniel!
Parabéns pelo post e pelo blog, cara! Só senti falta de uma coisa: Como faço pra criar um hook que dê um drop nas tabelas quando o plugin for desinstalado?