WP-CLI é a interface oficial de linha de comando do WordPress, mantida pelo projeto wp-cli.org, que permite executar via terminal qualquer operação disponível no wp-admin, além de tarefas impossíveis pela interface gráfica, como search-replace em massa no banco de dados e limpeza direta de transients.
Se você gerencia WordPress em escala, já sentiu a dor: um site grande, plugins que quebram, editores publicando ao mesmo tempo e uma tarefa de manutenção que trava o servidor no meio do caminho. Operar tudo pela interface gráfica é lento, arriscado e simplesmente não escala. É aqui que o WP-CLI muda o jogo.
Neste guia, você vai entender o que é o WP-CLI, como instalar passo a passo, quais são os comandos mais usados e como automatizar rotinas inteiras em produção sem depender de cliques no navegador.
O que é WP-CLI?
O WP-CLI é a ferramenta de linha de comando do WordPress que substitui a navegação no wp-admin por comandos executados diretamente no terminal. Com ele, você atualiza o core, gerencia plugins e temas, executa operações no banco de dados, cria usuários e roda scripts de manutenção sem abrir o navegador.
A diferença central está no protocolo. O wp-admin trabalha sobre HTTP: cada ação depende de uma requisição do navegador, sujeita a timeout do PHP-FPM e limite de memória. O WP-CLI roda em ambiente Shell, no próprio servidor, sem essas amarras.
Quem usa WP-CLI no dia a dia são desenvolvedores, times de DevOps e administradores de sistemas que precisam de um caminho técnico, auditável e repetível para manter WordPress rodando. Você encontra a referência completa na documentação oficial do WP-CLI.
Por que usar WP-CLI em WordPress de alta audiência?
Em sites com grande volume de conteúdo e tráfego, várias tarefas de manutenção simplesmente não terminam pela interface gráfica. O motivo é técnico: o HTTP impõe limites de tempo de execução, e operações longas estouram o timeout do PHP-FPM antes de concluir.
Pense em três cenários clássicos que travam no wp-admin:
- Regenerar thumbnails em massa: processar mais de 50 mil arquivos de mídia via HTTP consome memória e tempo de forma incontrolável, frequentemente interrompido pelo servidor no meio da fila.
- Search-replace no banco após migração: trocar um domínio antigo por um novo em toda a base exige percorrer tabelas grandes com dados serializados, algo que a interface não faz de forma nativa e segura.
- Backup completo de arquivos e banco: exportar bases grandes por HTTP concorre com o tráfego real dos visitantes e pode derrubar a disponibilidade do site.
Rodando essas tarefas pelo WP-CLI, você as executa no Shell, em background quando necessário, sem limite de execução do navegador e sem competir pelos mesmos recursos que atendem seus usuários. O resultado é menos consumo de servidor e mais estabilidade. Para entender o protocolo por trás disso, vale revisitar como funciona o protocolo HTTP em requisições web.
Como instalar o WP-CLI passo a passo?
Algumas hospedagens especializadas já entregam o WP-CLI pronto para uso via SSH. Se a sua não oferece, a instalação manual é simples. Antes, confira os requisitos atualizados:
- Ambiente baseado em UNIX: Linux, macOS ou FreeBSD. No Windows o suporte é limitado e recomenda-se usar WSL.
- PHP 7.4 ou superior: o ideal é PHP 8.1+ para acompanhar as versões suportadas do core.
- WordPress 5.0 ou superior: versões antigas fora de suporte não são recomendadas em produção.
Com os requisitos atendidos, siga os quatro passos.
1. Baixe o wp-cli.phar usando curl ou wget:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar2. Valide o arquivo baixado:
php wp-cli.phar --info3. Torne o arquivo executável:
chmod +x wp-cli.phar4. Mova para o seu PATH para chamar o comando de qualquer lugar:
sudo mv wp-cli.phar /usr/local/bin/wpTodo comando WP-CLI começa com wp. Para confirmar que a instalação deu certo, execute:
wp --infoSe o terminal retornar a versão do PHP, do WP-CLI e o caminho da configuração, está tudo funcionando. O código-fonte fica no repositório oficial no GitHub.
Quais são os comandos WP-CLI mais usados?
Essa é a parte que você provavelmente vai salvar nos favoritos. Todo comando segue o padrão: wp + comando + subcomando + parâmetros. Veja os grupos que mais aparecem na rotina.
Núcleo (core):
wp core version: mostra a versão do WordPress instalada, útil quando você não tem acesso ao wp-admin.wp core update: atualiza o core para a versão mais recente disponível.wp core verify-checksums: verifica se os arquivos do core foram alterados, um teste rápido contra injeção de código malicioso.
Plugins:
wp plugin list: lista todos os plugins com nome, status, disponibilidade de atualização e versão.wp plugin update --all: atualiza todos os plugins de uma vez em uma única linha.wp plugin deactivate nome-do-plugin: desativa um plugin sem entrar no painel, essencial para diagnosticar conflitos.
Banco de dados:
wp db export: gera um dump completo do banco em um arquivo .sql.wp db optimize: otimiza as tabelas do banco de dados.wp search-replace 'antigo.com' 'novo.com' --dry-run: simula a troca de strings em toda a base, tratando dados serializados corretamente.
Cache e transients:
wp transient delete --all: apaga todos os transients, uma operação que a interface gráfica não oferece nativamente.wp cache flush: limpa o cache de objetos do WordPress.
Usuários:
wp user list: lista todos os usuários com função e e-mail.wp user create nome email@dominio.com --role=editor: cria um usuário direto pelo terminal.
A lista completa está na referência completa de comandos. Para deixar clara a vantagem prática, veja como as mesmas tarefas se comportam nos dois caminhos.
WP-CLI vs wp-admin: comparação em tarefas reais
| Tarefa | Via wp-admin (HTTP) | Via WP-CLI (Shell) |
|---|---|---|
| Regenerar 10.000 thumbnails | Timeout do PHP-FPM antes de concluir; requer plugin extra | wp media regenerate sem limite de execução |
| Atualizar 50 plugins de uma vez | Item a item, com risco de timeout | wp plugin update --all em uma linha |
| Search-replace de domínio em migração | Impossível sem plugin dedicado | wp search-replace nativo com –dry-run |
| Limpar transients expirados | Não disponível na interface | wp transient delete --expired |
| Criar 100 usuários de teste | Manual, um por um | Loop Shell com wp user create |
Como automatizar tarefas com WP-CLI e Shell?
A grande força do WP-CLI aparece quando você combina os comandos com scripts Shell. Rotinas repetitivas, como atualizações e backups semanais, deixam de exigir intervenção manual.
Um script simples de manutenção pode ficar assim:
#!/bin/bash
cd /var/www/html
wp db export backup-$(date +%F).sql
wp core update
wp plugin update --all
wp cache flushSalve como manutencao.sh, torne executável com chmod +x manutencao.sh e agende no cron para rodar toda semana:
0 3 * * 1 /var/www/html/manutencao.shEsse mesmo padrão se encaixa em pipelines de CI/CD. Em um deploy automatizado, você pode rodar wp core verify-checksums e wp search-replace como etapas do processo, garantindo integridade e ajuste de ambiente antes do site ir ao ar. É o caminho auditável e repetível que a interface gráfica nunca vai oferecer.
Perguntas frequentes sobre WP-CLI
WP-CLI funciona em qualquer hospedagem WordPress?
Não em todas. O WP-CLI exige acesso a um terminal via SSH e um ambiente UNIX com PHP compatível. Hospedagens compartilhadas mais básicas costumam bloquear SSH, o que impede o uso. Já hospedagens WordPress gerenciadas geralmente entregam o WP-CLI pronto e liberado.
É seguro rodar wp core update em produção?
É seguro desde que você tenha um backup recente e, idealmente, um ambiente de homologação para testar antes. A boa prática é sempre exportar o banco com wp db export antes da atualização e validar o site logo após. Em operações sérias, atualizações de core passam por staging antes de chegar à produção.
Qual a diferença entre WP-CLI e phpMyAdmin para operações no banco?
O phpMyAdmin executa SQL bruto sobre o banco, sem entender a lógica do WordPress. O WP-CLI conhece a estrutura do WordPress, o que torna operações como search-replace seguras mesmo em dados serializados, algo que quebra facilmente no phpMyAdmin. Para tarefas específicas do CMS, o WP-CLI é mais confiável.
WP-CLI substitui plugins de backup e manutenção?
Em muitos casos, sim. Comandos como wp db export e scripts de rotina cobrem backup e manutenção sem o overhead de plugins que rodam tudo por HTTP. A vantagem é executar essas tarefas fora do fluxo do navegador, com menos consumo de servidor e sem impacto na disponibilidade do site.
Como usar WP-CLI em multisite?
O WP-CLI suporta multisite com o parâmetro --url para direcionar comandos a um site específico da rede. Comandos como wp site list mostram todos os sites, e wp plugin update --all --network aplica atualizações em nível de rede. É uma das tarefas onde a linha de comando economiza mais tempo.
WP-CLI funciona no Windows?
O suporte nativo no Windows é limitado. A recomendação é usar o WSL (Windows Subsystem for Linux), que cria um ambiente UNIX dentro do Windows e roda o WP-CLI sem restrições. Em servidores de produção, o ambiente costuma ser Linux, então o cenário Windows fica restrito a máquinas locais de desenvolvimento.
É possível usar WP-CLI via SSH em hospedagem compartilhada?
Depende do provedor. Muitas hospedagens compartilhadas não liberam SSH nem WP-CLI por questões de isolamento e segurança. Para operar WordPress em escala com WP-CLI, o ideal é uma hospedagem que ofereça acesso SSH e a ferramenta já configurada.
Conclusão
O WP-CLI deixou de ser um luxo de desenvolvedor para se tornar padrão em qualquer operação WordPress séria. Ele resolve exatamente aquilo que a interface gráfica não dá conta: tarefas longas, operações diretas no banco, automação de rotinas e integração com pipelines de deploy.
Se você gerencia sites de alta audiência, adotar o WP-CLI significa menos travamentos, mais previsibilidade e um caminho técnico auditável para manutenção. Menos cliques, mais controle.
Na nossa hospedagem WordPress gerenciada com WP-CLI habilitado, o WP Host já vem com o WP-CLI instalado e disponível via SSH, com PHP e WordPress sempre em versões suportadas. Assim, seu time executa manutenção e automação sem depender de configuração manual de ambiente.