A página oficial do WP-CLI resume: tudo o que você faz na administração do WordPress, você pode fazer pelo terminal. A vantagem não é só a velocidade. Um comando se repete de forma idêntica em dez sites, pode ser gravado em um script, disparado por uma tarefa agendada e funciona mesmo quando a administração está inacessível, por exemplo depois de um plugin que derruba o site.
Instalação
O WP-CLI é um único arquivo PHP empacotado (phar). O guia de instalação oficial indica que ele exige PHP 7.2.24 ou mais recente, sem outros requisitos além dos do WordPress:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Depois, wp cli update o atualiza. Muitas empresas de hospedagem já o oferecem: experimente wp --info em uma sessão SSH antes de instalá-lo. Execute-o com o usuário dono dos arquivos do site, não como root, para não criar arquivos que o PHP não conseguirá mais alterar.
Os comandos mais úteis
wp core update,wp plugin update --all,wp theme update --all: as atualizações, com um relatório por item.wp core verify-checksumsewp plugin verify-checksums --all: comparam os arquivos do núcleo e dos plugins do diretório oficial com as somas de verificação publicadas, para encontrar um arquivo alterado ou acrescentado.wp user list --role=administrator: a lista de administradores, para vigiar depois de um incidente; o nosso artigo sobre as funções e o menor privilégio explica o que fazer com ela.wp db export: uma exportação do banco, a primeira peça de um backup.wp search-replace: troca um endereço no banco inteiro tratando os dados serializados, com--dry-runpara conferir antes de gravar. É a ferramenta básica para passar de um ambiente de staging para a produção.wp cron event listewp cron event run --due-now: ver e executar as tarefas agendadas, útil para substituir o WP-Cron disparado pelas visitas.
No WordPress
- Diagnosticar uma invasão: a verificação das somas, a lista de administradores e a dos plugins ativos são os primeiros reflexos do nosso guia meu site foi invadido?, e o procedimento para limpar um site invadido usa os mesmos comandos.
- Desativar um plugin que bloqueia o acesso:
wp plugin deactivate nome-do-plugindevolve o controle sem passar pela administração. - Automatizar as atualizações e as exportações em um script disparado pelo cron, mantendo um log de cada execução.
- Acrescentar
--skip-pluginse--skip-themesquando o site estiver suspeito ou fora do ar: senão o WP-CLI carrega o código dos plugins, inclusive um eventual código malicioso.
Limites
O WP-CLI age com as permissões do usuário do sistema, e não com as de uma conta do WordPress: quem tem acesso SSH à conta pode alterar tudo. Proteja esse acesso à altura. A verificação das somas não cobre os arquivos da pasta uploads nem os plugins premium que não estão no diretório oficial.