📘 Guia Completo: O arquivo wp-config.php no WordPress
O arquivo wp-config.php é o coração da configuração do seu site WordPress. Ele fica na pasta raiz da instalação e contém informações essenciais como a conexão com o banco de dados, chaves de segurança, configurações de desempenho, segurança e, no caso de uma rede Multisite, as diretrizes para gerenciar vários sites.
Importante: Este guia é didático. Os valores mostrados são modelos (ex: MODELO_). Nunca copie exemplos diretamente para seu site real – use os dados fornecidos pelo seu servidor de hospedagem e gere chaves de segurança únicas.
📄 Estrutura básica do wp-config.php (modelo didático)
<?php
/**
* Arquivo de configuração do WordPress
*
* Define as configurações principais do site:
* - conexão com o banco de dados
* - chaves de segurança
* - prefixo das tabelas
* - modo de depuração
* - opções especiais (Multisite, cron, etc.)
*/
// ===============================================
// 1. CONEXÃO COM O BANCO DE DADOS
// ===============================================
// Esses dados são fornecidos pelo seu serviço de hospedagem.
// Mantenha sua senha em segredo!
define( 'DB_NAME', 'MODELO_NOME_DO_BANCO' ); // Nome do banco de dados
define( 'DB_USER', 'MODELO_USUARIO_DO_BANCO' ); // Usuário do banco de dados
define( 'DB_PASSWORD', 'MODELO_SENHA_DO_BANCO' ); // Senha do banco de dados
define( 'DB_HOST', 'MODELO_HOST_DO_BANCO' ); // Geralmente 'localhost'
define( 'DB_CHARSET', 'utf8' ); // Conjunto de caracteres
define( 'DB_COLLATE', '' ); // Collation (deixe vazio)
// ===============================================
// 2. PREFIXO DAS TABELAS
// ===============================================
// Evita conflitos se você tiver mais de um WordPress no mesmo banco.
// No Multisite, o prefixo é combinado com o ID do blog (ex: wp_2_posts)
$table_prefix = 'MODELO_PREFIXO_'; // Exemplo: 'wp_'
// ===============================================
// 3. CHAVES DE SEGURANÇA (SALTS)
// ===============================================
// Protegem os cookies de login. Gere valores únicos em:
// https://api.wordpress.org/secret-key/1.1/salt/
// NUNCA use "frase_única_aqui" em produção.
define('AUTH_KEY', 'MODELO_frase_única_aqui');
define('SECURE_AUTH_KEY', 'MODELO_frase_única_aqui');
define('LOGGED_IN_KEY', 'MODELO_frase_única_aqui');
define('NONCE_KEY', 'MODELO_frase_única_aqui');
define('AUTH_SALT', 'MODELO_frase_única_aqui');
define('SECURE_AUTH_SALT', 'MODELO_frase_única_aqui');
define('LOGGED_IN_SALT', 'MODELO_frase_única_aqui');
define('NONCE_SALT', 'MODELO_frase_única_aqui');
// ===============================================
// 4. MODO DE DEPURAÇÃO (DEBUG)
// ===============================================
// Ative apenas em ambiente de desenvolvimento.
// Em produção, mantenha false.
define('WP_DEBUG', false);
// ===============================================
// 5. CONFIGURAÇÕES CUSTOMIZADAS
// ===============================================
// Nesta seção você pode adicionar suas próprias constantes.
// Exemplo: ativar Multisite, aumentar memória, desativar cron, etc.
//
/* Add any custom values between this line and the "stop editing" line. */
// -------------- SUAS CONFIGURAÇÕES AQUI --------------
// define( 'WP_ALLOW_MULTISITE', true );
// define( 'WP_MEMORY_LIMIT', '256M' );
// define( 'DISABLE_WP_CRON', true );
// -----------------------------------------------------
/* That's all, stop editing! Happy publishing. */
// ===============================================
// 6. CARREGAMENTO DO WORDPRESS
// ===============================================
// Não altere as linhas abaixo – elas carregam o sistema.
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';
🧠 Explicação de cada seção
🔹 1. Banco de dados
DB_NAME→ Nome do banco de dados onde o WordPress guarda posts, páginas, usuários etc.DB_USER→ Usuário que tem permissão para acessar esse banco.DB_PASSWORD→ Senha do usuário. Nunca compartilhe.DB_HOST→ Endereço do servidor do banco (geralmentelocalhost).
🔹 2. Prefixo das tabelas ($table_prefix)
Define como as tabelas serão nomeadas. Exemplo: com o prefixo 'wp_', os posts ficam em wp_posts. No Multisite, cada blog filho usa tabelas como wp_2_posts (onde 2 é o ID do blog).
🔹 3. Chaves de segurança (Salt e Keys)
Códigos aleatórios que criptografam os cookies de login. Devem ser únicos e secretos. Use o gerador oficial do WordPress para criar valores reais.
🔹 4. Modo de depuração (WP_DEBUG)
Quando true, exibe todos os erros e avisos do PHP. Essencial para desenvolvimento, mas perigoso em produção (pode expor informações sensíveis).
🔹 5. Configurações customizadas
É a área onde você adiciona constantes extras, como as listadas nas próximas seções (Multisite, desempenho, segurança, WooCommerce, etc.).
🔹 6. Carregamento final
Define o caminho absoluto da instalação e carrega o arquivo wp-settings.php, que inicia o WordPress. Não mexa nessas linhas.
🌐 Configurações específicas para Multisite (rede de sites)
Para transformar um WordPress comum em uma rede Multisite, adicione as seguintes constantes na seção customizada antes de instalar a rede. Depois da instalação, o WordPress gerará algumas constantes automaticamente.
// ===============================================
// ATIVAR O MODO MULTISITE
// ===============================================
define('WP_ALLOW_MULTISITE', true); // Permite a criação da rede
// Após instalar a rede, o WordPress gera estas constantes:
define('MULTISITE', true); // Declara que a rede está ativa
define('SUBDOMAIN_INSTALL', false); // false = subdiretórios (ex: site.com/notebook/); true = subdomínios (ex: notebook.site.com)
define('DOMAIN_CURRENT_SITE', 'www.portanova.com.br'); // Domínio principal da rede
define('PATH_CURRENT_SITE', '/'); // Caminho da raiz da rede
define('SITE_ID_CURRENT_SITE', 1); // ID do site principal
define('BLOG_ID_CURRENT_SITE', 1); // ID do blog principal (sinônimo)
📌 Em um site WordPress normal (single site), nenhuma dessas constantes deve existir. Se você adicionar WP_ALLOW_MULTISITE ou MULTISITE em um site single, poderá causar erros.
⚙️ Configurações comuns para sites normais (single site)
As constantes abaixo são úteis para qualquer site WordPress, independentemente de ser Multisite ou não. Elas melhoram desempenho, segurança e gerenciamento de conteúdo.
🔧 Desempenho e recursos
| Constante | Descrição | Exemplo |
|---|---|---|
WP_MEMORY_LIMIT |
Memória PHP para o front-end do site. | define('WP_MEMORY_LIMIT', '256M'); |
WP_MAX_MEMORY_LIMIT |
Memória para a área administrativa (/wp-admin). |
define('WP_MAX_MEMORY_LIMIT', '512M'); |
WP_CACHE |
Ativa o cache de página (usado por plugins de cache). | define('WP_CACHE', true); |
AUTOSAVE_INTERVAL |
Intervalo (segundos) entre salvamentos automáticos. | define('AUTOSAVE_INTERVAL', 300); |
🔒 Segurança
| Constante | Descrição | Exemplo |
|---|---|---|
DISALLOW_FILE_EDIT |
Remove o editor de temas e plugins do admin. | define('DISALLOW_FILE_EDIT', true); |
FORCE_SSL_ADMIN |
Força toda a administração via HTTPS. | define('FORCE_SSL_ADMIN', true); |
WP_AUTO_UPDATE_CORE |
Controla atualizações automáticas do núcleo. | define('WP_AUTO_UPDATE_CORE', 'minor'); |
📝 Conteúdo e banco de dados
| Constante | Descrição | Exemplo |
|---|---|---|
WP_POST_REVISIONS |
Limita o número de revisões por post. | define('WP_POST_REVISIONS', 5); |
EMPTY_TRASH_DAYS |
Dias até exclusão permanente da lixeira. | define('EMPTY_TRASH_DAYS', 15); |
WP_ALLOW_REPAIR |
Ativa a ferramenta de reparo do banco em /wp-admin/maint/repair.php. |
define('WP_ALLOW_REPAIR', true); |
🛒 WooCommerce e plugins populares
| Constante | Descrição | Exemplo |
|---|---|---|
WC_REMOVE_ALL_BUTTONS |
Remove botões de ação em massa na lista de produtos (WooCommerce). | define('WC_REMOVE_ALL_BUTTONS', true); |
WC_TAX_ROUNDING_MODE |
Altera o arredondamento de impostos. | define('WC_TAX_ROUNDING_MODE', 'auto'); |
WPS_ROLES_CACHE |
Ativa/desativa cache de papéis de usuário no WP Statistics. | define('WPS_ROLES_CACHE', false); |
✅ Exemplo prático da seção customizada no wp-config.php
Abaixo está um exemplo real de como você pode organizar suas constantes entre os comentários indicados:
/* Add any custom values between this line and the "stop editing" line. */
// 1. MULTISITE (se for uma rede)
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.portanova.com.br');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
// 2. DESEMPENHO
define('WP_MEMORY_LIMIT', '512M');
define('WP_CACHE', true);
define('DISABLE_WP_CRON', true);
// 3. SEGURANÇA
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
// 4. CONTEÚDO
define('WP_POST_REVISIONS', 5);
define('EMPTY_TRASH_DAYS', 15);
// 5. PLUGINS (ex: Akismet, WP Super Cache)
define('WPCOM_API_KEY', '983e0f6c595e');
define('WPSC_READABLE_WARNING', false);
// 6. DEBUG (apenas desenvolvimento)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
// 7. QUERY MONITOR (desativar no Elementor)
if ( isset( $_GET['action'] ) && $_GET['action'] === 'elementor' ) {
define( 'QM_DISABLED', true );
}
/* That's all, stop editing! Happy publishing. */
⚠️ Cuidados importantes
- Faça sempre um backup do arquivo original antes de editá-lo.
- Um erro de sintaxe (como falta de ponto e vírgula) pode derrubar o site inteiro.
- Nunca compartilhe suas chaves de segurança ou senha do banco de dados.
- Se mudar de servidor, atualize os dados do banco e as URLs (use o plugin Better Search Replace ou WP-CLI).
- Em sites normais (single site), evite colocar constantes de Multisite – elas podem causar erros inesperados.
Próximo passo: Agora que você entende o wp-config.php, pode estudar como migrar um site normal para Multisite ou como adicionar outras constantes avançadas (como WP_SITEURL, WP_HOME, COOKIE_DOMAIN).
Este guia foi feito para estudo. Consulte a documentação oficial para informações completas.