Como Limpar o Banco de Dados de Seu WordPress
Faça uma limpeza geral em seu banco de dados MySQL do WordPress.

Excluir posts de uma categoria específica e limpar os dados órfãos no WordPress pode ser feito diretamente no banco de dados usando comandos SQL. Abaixo, seguem os passos e os comandos para realizar essas ações.
Certifique-se de fazer um backup completo do banco de dados antes de executar qualquer comando.
1. Excluir todos os posts de uma categoria específica
Para excluir todos os posts de uma categoria específica, é necessário identificar quais posts estão associados a essa categoria. Isso envolve a tabela de relacionamentos (wp_term_relationships
), a tabela de termos (wp_terms
), e as tabelas de posts e taxonomias.
-- Substitua `CATEGORY_ID` pelo ID da categoria que deseja excluir
SET @category_id = CATEGORY_ID;
-- Excluir os posts associados à categoria
DELETE p
FROM wp_posts p
JOIN wp_term_relationships tr ON p.ID = tr.object_id
JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.term_id = @category_id;
-- Excluir o termo da categoria, se necessário
DELETE FROM wp_term_relationships
WHERE term_taxonomy_id IN (
SELECT term_taxonomy_id
FROM wp_term_taxonomy
WHERE term_id = @category_id
);
DELETE FROM wp_term_taxonomy WHERE term_id = @category_id;
DELETE FROM wp_terms WHERE term_id = @category_id;
2. Limpar metadados órfãos de posts
Os metadados órfãos podem ser limpos excluindo os dados que não estão mais associados a posts existentes.
-- Excluir metadados de posts que não existem mais
DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WHERE p.ID IS NULL;
3. Limpar relações órfãs de categorias
Remova relacionamentos que estão associados a objetos (posts) inexistentes.
-- Excluir relações órfãs em wp_term_relationships
DELETE tr
FROM wp_term_relationships tr
LEFT JOIN wp_posts p ON tr.object_id = p.ID
WHERE p.ID IS NULL;
4. Limpar taxonomias órfãs
Exclua taxonomias que não têm mais relacionamentos válidos.
-- Excluir taxonomias órfãs
DELETE tt
FROM wp_term_taxonomy tt
LEFT JOIN wp_term_relationships tr ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE tr.term_taxonomy_id IS NULL;
5. (Opcional) Excluir termos que não estão em uso
Após excluir os relacionamentos e taxonomias órfãs, pode ser útil remover termos que não estão mais associados a taxonomias.
-- Excluir termos não utilizados
DELETE t
FROM wp_terms t
LEFT JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE tt.term_id IS NULL;
Observações
- Prefixo das tabelas: Substitua
wp_
pelo prefixo de tabela que você usa, caso tenha um diferente. - Cuidado com permissões: Alterar diretamente o banco de dados pode ter impactos graves. Realize testes em um ambiente de desenvolvimento antes de executar em produção.
Esses comandos devem ajudar a excluir todos os posts de uma categoria específica e limpar os dados órfãos no banco de dados WordPress.