O guia definitivo para o banco de dados WordPress
Publicados: 2022-02-09Em sua essência, o WordPress é um CMS (Sistema de Gerenciamento de Conteúdo). Para gerenciar o conteúdo, ele precisa ser capaz de armazená-lo. O WordPress faz isso por meio de pastas e arquivos e um banco de dados. Anteriormente, cobrimos o sistema de arquivos do WordPress em um artigo separado; vamos nos concentrar no banco de dados desta vez.
Neste artigo, veremos o banco de dados do WordPress, sua estrutura e como cada campo funciona. Também incluímos uma breve lição de história sobre MySQL. Dica – O My no MySQL não significa que é seu; Meu é uma pessoa real, mas quem? - Continue lendo para descobrir.
Índice
- Uma (muito) breve história do SQL, MySQL e MariaDB
- Como acessar o banco de dados do WordPress
- phpMyAdmin
- Plesk/cPanel
- Cliente SSH/MySQL/MariaDB
- Plug-ins do WordPress
- Estrutura de banco de dados WordPress
- Estrutura da tabela
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomia
- wp_usermeta
- wp_users
- Estrutura da tabela
Uma (muito) breve história do SQL, MySQL e MariaDB
O WordPress usa um RDBMS chamado MySQL. Tecnicamente, é baseado no MySQL, pois, cada vez mais, o MariaDB está sendo usado em vez do MySQL. SQL significa Structured Query Language e é a linguagem que usamos para interagir com o banco de dados – e não com o próprio banco de dados.
O MySQL desempenhou um papel significativo no crescimento da Internet como a conhecemos hoje. Introduzido pela primeira vez em 1995 como uma alternativa aos produtos oferecidos pela Microsoft e Oracle, rapidamente se tornou o padrão RDBMS de ouro de escolha.
A história do MySQL é colorida, tendo sido adquirida pela Sun Microsystems e depois pela Oracle (a Oracle adquiriu a Sun Microsystems e MySQL com ela).
Em resposta à aquisição do MySQL pela Oracle, Monty Widenius, o criador original do MySQL, transformou o MySQL em MariaDB, que ele nomeou em homenagem a sua filha, Maria. (Curiosamente, o MySQL tem o nome da outra filha de Monty – My). Com o tempo, surgiram diferenças entre MariaDB e MySQL; no entanto, os dois permanecem intercambiáveis em muitos cenários, incluindo bancos de dados WordPress.
De fato, em muitos casos, o MariaDB é considerado um substituto imediato do MySQL. Isso significa que você pode desinstalar o MySQL, instalar o MariaDB e continuar trabalhando como se nada tivesse mudado. Dito isso, o MariaDB pode oferecer melhorias de desempenho em algumas situações e também oferece maior compatibilidade com, por exemplo, mecanismos de armazenamento.
É importante notar que o MySQL permanece gratuito e é lançado sob um sistema de licença dupla. Em muitos casos, MySQL é usado para se referir a bancos de dados MySQL ou MariaDB.
Como acessar o banco de dados do WordPress
Existem algumas opções diferentes disponíveis quando se trata de se conectar ao banco de dados do WordPress. O método ou métodos disponíveis para você dependerá em grande parte do tipo de hospedagem WordPress que você usa. Se você não tiver certeza de como seu servidor está configurado, fale com seu provedor de hospedagem ou administrador de sistemas. De qualquer forma, as opções podem incluir;
phpMyAdmin
phpMyAdmin é uma ferramenta favorita, pois nos permite conectar ao banco de dados através de uma GUI baseada na web. O phpMyAdmin precisa ser instalado no mesmo servidor que hospeda o banco de dados, com muitos provedores de hospedagem oferecendo o phpMyAdmin imediatamente.
Plesk/cPanel
Plesk e cPanel são duas plataformas de painel de controle que atendem a uma função semelhante – uma interface de usuário que facilita o gerenciamento do servidor. Claro, existem certas diferenças importantes, incluindo as tecnologias e os sistemas operacionais que eles suportam. De qualquer forma, eles também nos permitem acessar bancos de dados, embora de maneiras ligeiramente diferentes.
Cliente SSH/MySQL/mariaDB
O SSH é uma maneira menos amigável de se conectar a um banco de dados, oferecendo uma CLI (Command Line Interface) em vez de uma GUI. Por isso, é recomendado um entendimento mais profundo dos comandos SQL. O SSH precisa ser configurado explicitamente no mesmo servidor que hospeda o banco de dados antes de se conectar a ele.
Plug-ins
Você também pode usar plugins do WordPress para acessar seu banco de dados do WordPress. Usando um plugin, você pode acessar o banco de dados diretamente do seu console de administração do WordPress. Aqui, você precisará escolher um plug-in de um fornecedor respeitável e seguir todas as práticas recomendadas aplicáveis para manter seus dados seguros. Se você não tiver certeza de qual plugin usar, leia nosso guia sobre como escolher os melhores plugins para o seu site WordPress.
Estrutura de banco de dados WordPress
O banco de dados do WordPress é composto por 12 tabelas. Cada tabela, por padrão, começa com o prefixo wp_; no entanto, isso pode ser alterado durante o processo inicial de instalação e configuração. Alterar o prefixo geralmente é recomendado por motivos de segurança do WordPress, especialmente se você pretende ou já possui várias instalações no mesmo servidor.
As 12 tabelas que compõem o banco de dados do WordPress são as seguintes (listadas em ordem alfabética):
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taxonomia
- wp_usermeta
- wp_users
Passaremos agora por cada tabela individualmente e veremos quais dados ela armazena e sua estrutura interna.
Estrutura da tabela
Antes de entrarmos nos detalhes de cada tabela, vale a pena dedicar algum tempo para ver como ela está estruturada. Se você não estiver familiarizado com a documentação do banco de dados, esta seção lhe dará um curso intensivo que você achará útil na próxima seção. Por outro lado, se você estiver bastante familiarizado com tabelas SQL, sinta-se à vontade para avançar.
- Nome do campo – Este é o nome do campo, que você encontrará na tabela SQL
- Descrição – Colocamos isso para ajudá-lo a entender que tipo de dados o campo contém
- Tipo – Este é o tipo de dados que o campo aceita. Os números entre parênteses representam o limite rígido do número de caracteres aceitáveis que podemos inserir
- Nulo – não está claro por que este campo é usado no momento
- Chave – Isso nos diz se a entrada é uma chave ou não. Existem diferentes tipos de chaves, incluindo:
- Primário
- Primário (Parte)
- Índice
- Índice (Parte)
- Exclusivo
- Múltiplo
- Padrão – Se a entrada tiver um valor padrão, o valor padrão será listado aqui
- Notas – Quaisquer notas adicionais
wp_commentmeta
A tabela wp_commentsmeta armazena metadados relacionados a comentários. Os comentários são armazenados separadamente na tabela wp_comments. A tabela possui os seguintes campos:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
meta_id | Este é um ID exclusivo para a entrada. Ele aumenta automaticamente | bigint(20)não assinado | Primário | ||
comment_id | Este é o ID do comentário ao qual os metadados se relacionam conforme encontrado na tabela wp_comments | bigint(20)não assinado | Índice | 0 | |
meta_key | Isso identifica o tipo de metadados para o qual a entrada se destina | varchar(255) | Sim | Índice | Nulo |
meta_value | Estes são os metadados reais | texto longo | Sim | Nulo |
wp_comments
A tabela wp_comments armazena comentários de postagem. Os metadados relacionados aos comentários são armazenados na tabela wp_commentmeta. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
comment_ID | Este é um ID exclusivo para a entrada. Ele aumenta automaticamente | bigint(20) | Primário | N / D | |
comment_post_ID | Este é o ID do post para o qual o comentário foi escrito, conforme encontrado na tabela wp_posts | bigint(20) | Índice | 0 | |
autor_comentário | Este é o nome do autor que escreveu o comentário | texto minúsculo | |||
comment_author_email | Este é o endereço de e-mail do autor que escreveu o comentário | varchar(100) | Índice | ||
comment_author_url | Este é o URL do site do autor que escreveu o comentário | varchar(200) | |||
comment_author_IP | Este é o endereço IP do autor que escreveu o comentário | varchar(100) | |||
comment_date | Esta é a data e hora em que o comentário foi publicado | data hora | 0000-00-00 00:00:00 | ||
comment_date_gmt | Esta é a data e hora GMT (Greenwich Meridian Time) em que o comentário foi postado | data hora | Índice e Índice Pt2 | 0000-00-00 00:00:00 | |
comment_content | Este é o comentário real deixado | texto | |||
comment_karma | Isso está disponível para uso por plugins para fins de gerenciamento de comentários | int(11) | |||
comment_approved | Isso indica se o comentário foi aprovado ou não | varchar(20) | Índice Parte 1 | 0 | |
agente_comentário | Este é o lugar de onde o comentário foi postado | varchar(255) | |||
tipo_comentário | Este é o tipo de comentário deixado | varchar(20) | |||
comment_parent | Se o comentário for uma resposta, este campo indica o comentário pai | bigint(20)não assinado | Índice | 0 | |
ID do usuário | Se um usuário comentador estiver registrado, este será seu ID conforme disponível em wp_users | bigint(20)não assinado | 0 |
wp_links
Esta tabela foi originalmente criada para suportar blogrolls, um recurso que foi descartado a partir do WordPress 3.5. Ele é mantido para compatibilidade com versões anteriores, mas não está mais em uso. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
id_link | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint (20) não assinado | Primário | ||
link_url | Este é o URL do link | varchar(255) | |||
nome_link | |||||
Este é o nome do link | varchar(255) | ||||
imagem_link | Este é o URL da imagem relacionada ao link | varchar(255) | |||
Link alvo | Este é o frame de destino do link | varchar(25) | |||
link_desciption | Esta é uma descrição do link | varchar(255) | |||
link_visible | Isso nos diz se o link é exibido publicamente ou não | varchar(20) | Índice | S | |
proprietário_do link | Este é o ID do usuário que criou o link conforme disponível em wp_users | bigint (20) não assinado | 1 | ||
classificação_do link | Esta é a classificação do link | int(11) | 0 | ||
link_update | Esta é a data e hora em que o link foi atualizado | data hora | 0000-00-00 00:00:00 | ||
link_rel | Esta é a relação do link | varchar(255) | |||
link_notes | Isto é notas sobre o link | texto médio | |||
link_rss | Este é o endereço do feed rss do link | varchar(255) |
wp_options
As configurações do WordPress configuradas por meio do console de administração são armazenadas aqui. Plugins e temas normalmente também armazenam informações de configurações aqui, conforme ilustrado na captura de tela abaixo. Aqui podemos ver a opção de frequência de varredura do nosso Monitor de Alterações de Arquivos do Site definida como diária.
A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
option_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente. | bigint(20) não assinado | Primário | ||
nome_opção | Este é o nome da opção/configuração | varchar(64) | Exclusivo | ||
valor_opção | Este é o valor da configuração que está sendo armazenada | texto longo | |||
carregamento automático | Esta configuração informa ao wp_load_alloptions() se deve carregar automaticamente a opção ou não | varchar(20) | Índice | sim |
wp_postmeta
Os metadados de postagens que acompanham cada postagem são armazenados aqui. Os metadados podem incluir arquivos anexados, miniaturas, slug de postagem desejado e outras informações desse tipo. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
meta_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
Nome do campo post_id | Este é o ID do post ao qual os metadados estão associados conforme disponível em wp_posts | bigint(20) não assinado | Índice | 0 | |
meta_key | Esta é uma chave de índice que identifica os metadados, pois cada postagem pode ter mais de um metadados | varchar(255) | Sim | Índice | Nulo |
meta_value | Estes são os metadados reais | texto longo | Sim | Nulo |
wp_posts
A tabela wp_posts é importante e contém o núcleo dos dados do WordPress. Ele contém as postagens reais, páginas e itens do menu de navegação, como visto no exemplo abaixo, mostrando a página de amostra padrão incluída em todas as novas instalações do WordPress.
A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
EU IRIA | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário e Índice (Parte 4) | ||
post_autor | Este é o ID do autor que escreveu o post conforme disponível em wp_users | bigint(20) não assinado | Índice | 0 | |
Data de postagem | Esta é a data e hora em que a postagem foi criada | data hora | Índice (Parte 3) | 0000-00-00 00:00:00 | |
post_date_gmt | Esta é a data e hora GMT (Greenwich Mean Time) em que a postagem foi criada | data hora | 0000-00-00 00:00:00 | ||
Publicar conteúdo | Este é o conteúdo real do post | texto longo | |||
post_title | Este é o título do post | texto | |||
post_excerpt | Este é um trecho do post | texto | |||
post_status | Este é o status da postagem | varchar(20) | Índice (Parte 2) | publicar | |
comment_status | Isso nos diz se os comentários na postagem são permitidos ou não | varchar(20) | abrir | ||
ping_status | Isso nos diz se ping e trackbacks são permitidos ou não | varchar(20) | abrir | ||
post_password | As postagens podem ser protegidas por senha com qualquer senha aplicável armazenada aqui | varchar(20) | |||
Nome do post | Este é o slug de URL do título do post | varchar(200) | índice | ||
to_ping | Esta é uma lista de URLs para os quais o WordPress deve enviar pingbacks sempre que o post for atualizado | texto | |||
pingado | Esta é uma lista de URLs que o WordPress fez pingback quando atualizado | texto | |||
post_modified | Esta é a data e hora da última modificação do post | data hora | 0000-00-00 00:00:00 | ||
post_modified_gmt | Esta é a data e hora GMT da última modificação da postagem | data hora | 0000-00-00 00:00:00 | ||
post_content_filtered | Esta é uma versão filtrada de post_content que normalmente é usada por plugins para fins de cache | texto longo | |||
post_parent | Quando a postagem é uma revisão ou anexo, isso cria o relacionamento pai-filho | bigint(20) não assinado | Índice | 0 | |
guia | Este é o Identificador Único Global (GUID) da postagem | varchar(255) | |||
menu_order | Este é o número do pedido no qual as páginas e os itens não postados aparecem | int(11) | 0 | ||
Tipo de postagem | Isso identifica o tipo de conteúdo | varchar(20) | Índice (Parte 1) | publicar | |
post_mime_type | Este é o tipo mime de anexos de postagem | varchar(100) | |||
Contagem de comentários | Este é o número total de comentários, trackbacks e pingbacks | bigint(20) | 0 |
wp_terms
Termos são objetos de classificação usados para classificar objetos no WordPress. Por exemplo, categorias e tags usadas em postagens são tipos de termos. Esta tabela contém todos os diferentes tipos de termos usados em todo o WordPress. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
term_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
nome | Este é o nome do termo | varchar(200) | Índice | ||
lesma | Esta é a lesma do termo | varchar(200) | Múltiplo | ||
termo_grupo | Este é um alias que temas e plugins podem usar para agrupar termos juntos | bigint(10) | 0 |
wp_termmeta
Esta tabela armazena os metadados associados aos termos encontrados em wp_terms. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
meta_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
term_id | Este é o ID do termo ao qual os metadados se relacionam conforme disponível em wp_terms | bigint(20) não assinado | Índice | 0 | |
meta_key | Esta é uma chave identificadora para o termo metadados | varchar(255) | Sim | Índice | NULO |
meta_value | Estes são os metadados reais | texto longo | Sim | NULO |
wp_term_relationships
Esta tabela mantém relações entre postagens e taxonomias. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
object_id | Este é o ID do post conforme disponível em wp_posts | bigint(20) não assinado | Primário (Parte 1) | 0 | |
term_taxonomy_id | Este é o ID do termo taxonomia conforme disponível em wp_term_taxonomy | bigint(20) não assinado | Primário (Parte 2) e Índice | 0 | |
termo_ordem | Esta é a ordem do termo | int(11) | 0 |
wp_term_taxonomia
Esta tabela fornece taxonomias de termos e, como tal, um contexto no qual eles podem ser usados. Por exemplo, podemos usar o termo banco de dados como categoria de postagem e categoria de produto (assumindo que estamos vendendo serviços de banco de dados). Nesse caso, categoria de postagem e categoria de produto são taxonomias de termos. A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
term_taxonomy_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
term_id | Este é o ID do termo conforme disponível em wp_terms | bigint(20) não assinado | Único (Parte 1) | 0 | |
taxonomia | Esta é a lesma da taxonomia | varchar(32) | Único (Parte 2) e Índice | ||
Descrição | Esta é uma descrição da taxonomia | texto longo | |||
pai | Este é o ID da taxonomia pai se a taxonomia for filha | bigint(20) não assinado | 0 | ||
contar | Este é o número de objetos que são atribuídos a esta taxonomia | bigint(20) | 0 |
wp_usermeta
Esta tabela armazena dados de usuário adicionais que não são encontrados na tabela wp_users. O próprio WordPress, assim como plugins ou temas, podem fazer uso desta tabela.
Um exemplo de metadados do usuário é o apelido do usuário. Embora o WordPress inclua esse campo por padrão, ele ainda faz parte dos metadados, conforme mostrado abaixo. Outro exemplo é o WooCommerce; um plug-in de comércio eletrônico que usa essa tabela para armazenar informações do cliente, como endereço de entrega.
A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
umeta_id | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
ID do usuário | Este é o ID do usuário ao qual as informações estão relacionadas, conforme encontrado em wp_users | bigint(20) não assinado | Índice | 0 | |
meta_key | Este é um identificador chave para a meta-entrada | varchar(255) | sim | Índice | Nulo |
meta_value | Estes são os metadados reais | texto longo | Sim | Nulo |
wp_users
As informações dos usuários do WordPress são armazenadas aqui. Com os usuários sendo parte integrante do ecossistema WordPress, esta tabela é essencial.
A tabela armazena apenas as informações principais de cada usuário, conforme mostrado no exemplo abaixo. Todas as outras informações são armazenadas na tabela wp_usermeta.
A tabela tem as seguintes colunas:
Nome da coluna | Descrição | Tipo | Nulo | Chave | Predefinição |
---|---|---|---|---|---|
EU IRIA | Este é um ID exclusivo para a entrada. Aumenta automaticamente | bigint(20) não assinado | Primário | ||
login de usuário | Este é o nome de usuário do usuário | varchar(60) | Índice | ||
passagem de usuário | Esta é a senha do usuário | varchar(64) | |||
user_nicename | Este é o nome de exibição do usuário | varchar(50) | Índice | ||
user_email | Este é o endereço de e-mail do usuário | varchar(100) | |||
user_url | Este é o URL do usuário (ex. site) | varchar(100) | |||
user_registered | Esta é a data e hora em que o usuário foi registrado | data hora | 0000-00-00 00:00:00 | ||
user_activation_key | Esta é a chave de ativação do usuário, usada para redefinir sua senha | varchar(60) | |||
status do usuário | Isso não é mais usado a partir do WordPress 3.0, mas usado para indicar se o usuário era spam | int(11) | 0 | ||
Nome em Exibição | Este é o nome de exibição público do usuário | varchar(250) |
Familiarize-se com o banco de dados WordPress
Os bancos de dados podem ser bastante intimidantes para os não iniciados – afinal, eles contêm todos os dados necessários para o WordPress funcionar. Embora seja verdade que um passo em falso aqui pode derrubar o site, não deixe que isso o intimide. Afinal, conhecer o banco de dados do WordPress pode facilitar muito seus esforços de solução de problemas, caso isso seja necessário.
A configuração de um ambiente de teste ou teste pode fornecer um espaço seguro no qual você pode experimentar sem correr o risco de deixar seu site offline. Você pode até configurar um ambiente de teste XAMPP em seu computador gratuitamente - fornecendo tudo o que você precisa para dominar o banco de dados do WordPress.