O WordPress usa pouco SQL para aceder à base de dados. Em vez disso, fornece uma classe de funções para toda manipulação em banco de dados…
A classe é baseada na ezSQL escrita e mantida por Justin Vincent e se chama class WPDB. Esta classe gere todas as tabelas da base de dados e seus conteúdos. É responsável por toda a conexão do WordPress.
É possível obviamente usarmos essa classe para criarmos a nossas próprias tabelas, ou simplesmente retirar ou guardar dados usando SQL. Embora os developers sugerem a utilização dos Custom Post Types e da tabela wp_posts para guardar dados, por vezes é necessário criar uma tabela específica pois a sua estrutura é muito diferente.
A classe está disponível no objeto global $wpdb. Ele pode ser usada para trabalhar com todas tabelas do WordPress, as padrões e as criadas por plugins. Quando for usar dentro de funções lembre-se de usar o global. O objeto acessa quantas tabelas existirem, mas somente um banco de dados, o do WordPress. http://codex.wordpress.org/Function_Reference/wpdb_Class
Ao escrevermos plugins WordPress ocasionalmente precisamos de encontrar uma maneira de criar uma tabela de banco de dados com o seu plugin, para armazenar dados de seus recursos, opções, etc. Esta abordagem pode não ser a melhor, mas ela faz esse trabalho. Tendo em conta que será importante que se mantenha a desinstalação do plugin.
exemplo para criar uma tabela na bd do WordPress
<?php
// Cria uma tabela que ira guardar os IPs de quem aceder ao site.
// ATENCAO: Este codigo e apenas didatico.
function ip_create_table() {
// Acede ao objeto global de gestao de bd
global $wpdb;
// Verifica se a nova tabela existe
// "prefix" o prefixo escolhido na instalacao do WordPress
$tablename = $wpdb->prefix . 'hits';
// Se a tabela nao existe sera criada
if ( $wpdb->get_var( "SHOW TABLES LIKE '$tablename'" ) != $tablename ) {
$sql = "CREATE TABLE `$tablename` (
`id_` int(10) NOT NULL AUTO_INCREMENT,
`hit_ip` varchar_(100) NOT NULL,
`hit_date` datetime_ NOT NULL
);";
// Ao usar a funcao dbDelta() e necessario carregar este ficheiro
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
// Funcao que cria a tabela na bd e executa as otimizacoes necessarias
dbDelta( $sql );
}
}
add_action( 'init', 'ip_create_table' );
?>
Espero que este artigo tenha sido útil! Se tiverem alguma dúvida ou sugestão para novos tutoriais, podem comentar na zona de comentários em baixo. obrigado por lerem o artigo e até à próxima!
Gostou deste artigo? Dê like e partilhe-o com seus amigos!
3 comentários a “WordPress: como criar tabelas na base de dados com um plugin”
Valeu, tava procurando isso
boa noite vim aqui pedir ajuda referente ao woocommerce estou tentando uma interação com as tabelas via access ja fiz a conexão porem precisava de algumas informações ja que na tabela post ele armazena não so os produtos gostaria de saber onde ele armazena o estoque ou como ele da baixa pois n acho nem a tabela de vendas e nem de entrada e nem o valor dos produtos tb poderia me ajudar.
Viva, Marcelo! O que pretende esta guardado nas tabelas que o Woocommerce cria na altura da sua instalação.
Os produtos estão localizados principalmente em 2 tabelas: “wp_posts table” com um “post_type” como “product” ou “product_variation”. A tabela “wp_postmeta” com o “post_id” correspondente por produto (o ID do produto).
Tipos de produtos, categorias, subcategorias, tags, atributos e todas as outras taxonomias personalizadas estão localizadas nas seguintes tabelas:
wp_terms
wp_termmeta
wp_term_taxonomy
wp_term_relationships
wp_woocommerce_termmeta
wp_woocommerce_attribute_taxonomies (apenas para atributos do produto).
Você consegue essa informação na documentação do plugin.