Tópico 3 — Arquitetura de Diretórios e Arquivos

1. Entendendo a Estrutura

O WordPress é organizado para separar responsabilidades entre núcleo, conteúdo e interface. A leitura correta dessa estrutura é essencial para editar com segurança, manter compatibilidade e compreender onde o código é executado.

Objetivo entender o que cada pasta faz, como o sistema se comporta no servidor e como estruturar um ambiente limpo e versionado.

2. Estrutura Principal

Mapa de diretórios (nível raiz)
/ (raiz)
├── index.php                # Entrada principal
├── wp-config.php            # Configurações do site e banco
├── wp-admin/                # Interface administrativa
├── wp-includes/             # Core: classes e funções centrais
└── wp-content/              # Temas, plugins e uploads
    ├── themes/              # Temas ativos e filhos
    ├── plugins/             # Funcionalidades adicionais
    └── uploads/             # Mídias enviadas via painel

As pastas wp-admin e wp-includes são parte do core e não devem ser alteradas. A única pasta destinada a personalização é wp-content.

3. Estrutura de um Tema

Tema padrão
wp-content/
└── themes/
    └── meu-tema/
        ├── style.css         # Identifica o tema e define metadados
        ├── functions.php     # Hooks, scripts, configurações
        ├── index.php         # Template base (fallback)
        ├── header.php / footer.php / sidebar.php
        ├── single.php / page.php / archive.php / 404.php
        ├── template-parts/   # Componentes reutilizáveis
        └── assets/           # css, js, imagens, fontes
ArquivoFinalidade
style.cssArquivo obrigatório. Contém nome do tema, autor e descrição.
functions.phpAdiciona hooks, registra menus, enfileira scripts e estilos.
index.phpTemplate genérico usado como fallback.
template-parts/Blocos reutilizáveis como cards, cabeçalhos e rodapés.
assets/Contém os recursos estáticos do tema, organizados por tipo.

4. Estrutura de um Plugin

Exemplo de plugin
wp-content/
└── plugins/
    └── meu-plugin/
        ├── meu-plugin.php           # Arquivo principal (header obrigatório)
        ├── includes/                # Funções auxiliares
        ├── assets/                  # css/js do plugin
        ├── admin/                   # telas e lógica do painel
        └── readme.txt
Cabeçalho obrigatório (meu-plugin.php)
<?php
/*
Plugin Name: Meu Plugin Exemplo
Description: Adiciona funcionalidades personalizadas.
Version: 1.0
Author: Seu Nome
*/

5. Organização do Ambiente Local

Em desenvolvimento, mantenha cada projeto isolado. Use versionamento (Git) para rastrear mudanças e separar ambientes de teste e produção.

Estrutura sugerida
~/projetos/
└── estudos-wordpress/
    ├── public/            # Instalação do WordPress
    ├── database/          # Dumps SQL e backups
    ├── wp-debug.log       # Log local de erros
    ├── .git/              # Controle de versão
    └── docs/              # Documentação e anotações
Use o arquivo .gitignore para excluir pastas como wp-content/uploads e wp-config.php de commits. Evite expor credenciais.

6. Exemplo de .gitignore

.gitignore básico
# Ignorar arquivos sensíveis e temporários
wp-config.php
wp-content/uploads/
wp-content/cache/
debug.log
*.log
*.sql
node_modules/
vendor/
.env

7. Boas Práticas

Benefício Estrutura organizada reduz erros, facilita manutenção e acelera onboarding de novos devs.