Vamos falar agora sobre WordPress Command Line Interface (WP-CLI) que é uma ferramenta poderosa para controlar o WordPress através de linha de comando.
WP-CLI é uma ferramenta de código aberto para desenvolvedores web manterem e atualizarem seus sites WordPress por meio da Interface de Linha de Comando.
Antes que você torça o nariz, precisa saber que seu principal objetivo é acelerar o fluxo de trabalho do desenvolvedor do WordPress.
Portanto, as várias funções e comandos do WP-CLI podem gerenciar tarefas como redefinir senhas, gerenciar categorias, adicionar/remover usuários, atualizar plugins, configurar instalações multisite e muito mais.
Desse modo, o WP-CLI pode ajudar a economizar seu tempo e aumentar sua produtividade porque permite executar várias tarefas rapidamente.
- Daniel Bachhuber é quem mantém o WP-CLI desde 2003
- Em Janeiro de 2017, esta ferramenta open-source mudou-se oficialmente para o WordPress.org e passou a ser co-mantida por Alain Schlesser.
- Em 8 de agosto de 2018, O WP-CLI v2 foi lançado.
O WP-CLI já está instalado por padrão em vários servidores, e basta simplesmente usar SSH no seu servidor para começar.
Como obter o WP-CLI
Você vai precisar do PHP, e o requisito mínimo para o WP-CLI v2.0.0 é a versão PHP 5.4.
Para começar, você precisa instalar o WP-CLI – o que é um processo bem simples.
Se você usa Linux ou OSX – um VPS, por exemplo -, pode executar estes quatro comandos um após o outro:
Baixe a ferramenta WP-CLI do Github com esse comando:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Confirme se o download foi concluído assim:
php wp-cli.phar --info
Vamos dar permissões com chmod
para o wp-cli.phar
ser um executável, desse modo:
chmod +x wp-cli.phar
Por fim, vamos mover o WP-CLI para a localização final assim:
sudo mv wp-cli.phar /usr/local/bin/wp
Entretanto, para instalar no Windows você precisa se certificar de ter instalado o PHP – Se você já usa soluções como WAMP, XAMPP, etc, já tem.
Outra coisa importante é adicionar o PHP ao PATH do Windows da seguinte forma (caso não tenha feito ainda):
- Iniciar → Painel de Controle → Sistema
- Avançado → Variáveis de Ambiente
- Encontre a entrada Path em “Variáveis do Sistema” e abra clicando duas vezes
- Digite seu diretório PHP no final, incluindo ‘;’ antes (por exemplo
;C:\php
) - Pressione Ok
Ou, se tiver o Windows 10, pode digitar na busca “variáveis” e já vai ver a opção – como na imagem a seguir:
Inclua a localização do diretório do PHP em Path da seção “Variáveis do Sistema” de “Variáveis de Ambiente” da guia “Avançado” das “Propriedades do Sistema”:
Você pode encontrar essa informação na documentação oficial do PHP.
Você pode ver também na documentação oficial do WP-CLI outros métodos de instalação.
Fazendo da forma correta, você deverá ser capaz de executar o comando wp --info
e obter informações como essas:
Os Princípios Básicos do WP-CLI
Acessar o WordPress por linha de comando pode não parecer tão intuitivo, mas é poderoso e pode lhe dar ainda mais controle e produtividade, especialmente se usar scripts Bash.
Basicamente, os scripts Bash permitem executar uma sequência de comandos a partir de um único comando.
Você pode criar um arquivo Basch e executar o comando bash install-and-setup.sh
e para, por exemplo, ter al como isso:
- Baixar WordPress
- Criar e preencher
wp-config.php
- Criar a base de dados
- Instalar o WordPress
- Instalar e ativar os plugins que você precisa
- Instalar e ativar um tema
- Baixar e adicionar conteúdo de teste (dummy content)
Que tal isso rodando em segundos? Normalmente isso demoraria pelo menos 5-10 minutos, especialmente se houver alguns plugins envolvidos.
Entendendo os Comandos WP-CLI
Se você está habituado a usar linhas de comando o WP-CLI não tem nada de especial, mas se você está lidando com isso agora, vamos ver como funciona.
Basicamente os comandos começam com wp
seguido de um comando principal e subcomando, seguido de parâmetros obrigatórios ou opcionais:
wp comando subcomando parametro --paramopcional --paramopcional2=valor
Você pode também acessar a lista de comandos e a documentação de ajuda usando o comando:
wp help
Para sair da página de ajuda do WP-CLI, basta pressionar a tecla Q
.
Ah! Você também pode ter mais informações usando o comando acima seguido do comando que deseja conhecer, por exemplo:
wp help comment
Além disso, você pode aprofundar em subcomandos, por exemplo, usando:
wp help comment count
Portanto, se quiséssemos instalar um tema, por exemplo, poderíamos executar o seguinte comando:
wp theme install twentytwenty --activate
Desse modo, o comando irá instalar e ativar o tema Twenty Twenty em sua instalação do WordPress.
Detalhe é que o WP-CLI funcionará com a instalação WordPress selecionada – que se encontra atualmente no terminal.
Assim, se você trocar o diretório, indo para outra instalação do WordPress, ele funcionará com essa instalação que você acessou no terminal.
Comandos mais comuns
Eu recomendo dar uma olhada na lista de comandos, tente executar alguns deles para você ver como funcionam – sem medo de ser feliz!
Entretanto, quero passar com você por alguns comandos mais comuns, em seguida, ver como usar WP-CLI com SSH e como usar scripts bash.
Como Instalar o WordPress
É muito comum usar WP-CLI para criar ambientes de teste, e aqui estão alguns comandos que podem ajudar a instalar o WordPress:
wp core download
wp config create --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
wp db create
wp core install --url=https://seusite.com.br --title=SeuSite --admin_user=username --admin_password=suasenha [email protected]
Nas linhas de comando acima:
- Primeiro baixamos a versão estável mais recente do WordPress
- Criamos um arquivo de configuração com os dados de conexão com o banco de dados
- Aproveitamos para para passar PHP adicional para ativar o DEBUG do WordPress usando constantes nativas
- Em seguida, criamos o banco de dados (certifique-se sobre os dados de acesso ao BD)
- Por fim, instalamos o core baixado e já passamos parâmetros de configuração
Vale dizer que o banco de dados poderia ser criado através do Painel de Controle, PHPMyAdmin, mas podemos usar linhas de comando também.
Desse modo, podemos usar o código que vimos acima wp db create, tendo as permissões necessárias para os dados de acesso do wp-config.
Ou, se está usando SSH, pode usar linhas de comando da seguinte forma:
Faça login no MySQL desse jeito:
mysql -u usuario -p
Crie um banco de dados da seguinte forma (escolha um nome associativo):
create database bdwordpress;
Configure o usuário, senha e as permissões de acesso assim:
grant all on wordpress.* to 'usuario' identified by 'suasenha';
Como Reinstalar o WordPress Core
Há várias formas de reinstalar o WordPress e, obviamente, com o WP-CLI podemos fazer isso facilmente.
Portanto, podemos usar o seguinte comando para fazer o download do core do WordPress, sem os temas e plugins (–skip-content) fazendo a sobreposição (–force).
wp core download --skip-content --force
Como Modificar a URL do WordPress
Você pode muito bem precisar ou querer alterar sua URL do WordPress, por exemplo, após fazer a migração de um site WordPress.
Ou talvez você precise alterar o domínio, mudar para um subdomínio, ou mesmo mudar a versão com www para non-www, ou quem sabe apenas trocar de HTTP para HTTPS.
Independente do caso, você pode facilmente usar o comando wp option update
para isso, como pode ver a seguir:
wp option update home 'https://novodominio.com'
wp option update siteurl 'https://novodominio.com'
Como Instalar e Gerenciar Plugins
Você pode querer ver uma lista dos plugins instalados em um site, além disso, ver se estão ativos, qual a versão e se tem atualizações disponíveis.
wp plugin list
Como Instalar Plugins em Lote
Para instalar vários plugins você pode simplesmente “empilhar” os parâmetros e escrever os diretórios de cada um deles em sequência, como por exemplo:
wp plugin install advanced-custom-fields jetpack wordpress-seo --activate
Portanto, os nomes dos plugins vêm do seu nome no repositório, e para descobrir isso basta visitar sua página e olhar para a URL ou usar o wp plugin search nome
que lhe dará uma lista no terminal.
Outra coisa, você pode instalar versões específicas dos plugins do WordPress, se necessário, com o atributo --version
.
wp plugin install wordpress-seo --version=18.0 --activate
E se você quiser, pode instalar plugins a partir de arquivos remotos, não apenas o repositório, o que é útil se você estiver precisando de usando um plugin fora do repositório.
Portanto, por exemplo, pode usar o comando a seguir para instalar dois plugins do repositório e um de um servidor Amazon S3.
wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2022/06/23073607/myplugin.zip --activate
Como Desativar Plugins
Para desativar um único plugin você pode executar o seguinte comando:
wp plugin deactivate wordpress-seo
Agora, se quiser desativar todos os plugins de uma só vez, execute o seguinte comando:
wp plugin deactivate --all
Quando você está resolvendo problemas e incompatibilidades, e precisa desativar todos os plugins de uma só vez, isso pode ser bastante útil.
E, para ajudar em várias situações, você também pode habilitá-los um a um, testando à medida que avança.
Como Atualizar Plugins
Você também pode atualizar facilmente os plugins do WordPress, rodando o subcomando update
seguido do nome do plugin.
wp plugin update wordpress-seo
Ou pode optar por atualizar todos os plugins de uma vez só usando:
wp plugin update --all
Como Instalar e Gerenciar Temas
Você pode gerenciar temas – basicamente como fazemos com plugins – para seu site WordPress facilmente usando WP-CLI, começando por listar os temas instalados assim:
wp theme list
Depois de ver a lista, pode alterar o tema ativa usando o seguinte comando:
wp theme activate slugdotema
Você pode usar o comando abaixo para pesquisar novos temas no repositório oficial do WordPress, vendo o slug que usamos para instalar e ainda uma nota de classificação (rating):
wp theme search bootstrap
Então, depois que encontrar o tema que deseja instalar, basta usar, por exemplo, o seguinte comando para instalar o tema:
wp theme install flat-bootstrap --activate
Você pode também usar URLs de arquivos ZIP para rodar a instalação de um tema assim como vimos acima com os plugins.
Você pode atualizar temas usando o um comando para o tema individualmente, ou pode atualizar todos de uma vez só, como nos comandos abaixo, respectivamente:
wp theme update flat-bootstrap
wp theme update --all
Como Gerenciar o Banco de Dados do WordPress
Você pode também executar consultas SQL normais usando o comando wp db query, por exemplo, para ver usuários registrados:
wp db query "SELECT user_login,ID FROM wp_users;"
Você também pode ver abaixo comandos para exportar e importar o banco de dados usando o WP-CLI.
Como Pesquisar e Substituir no Banco de Dados
Se você já fez migrações de sites, atualizou URL, ou precisou substituir termos no WordPress, sabe que não é tão simples.
Inclusive, uma das principais dificuldades de migrar um site apenas copiando e colando um banco de dados é que o banco de dados contém arrays serializados.
No entanto, o comando search-replace
des-serializa os arrays primeiro, depois executa a pesquisa e substituição e, em seguida, re-serializa os arrays.
Desse modo, basta executar esse simples comando:
wp search-replace termo-antigo termo-novo
Além disso, você pode passar parâmetros adicionais para ter mais recursos, por exemplo, pára visualizar primeiro o que será substituído usando --dry-run
.
Como Importar e Exportar
Usando o WP-CLI, você pode criar um arquivo XML, assim como na ferramenta de exportação do WordPress, ou pode exportar/importar o banco de dados bruto.
wp db export
wp db import arquivo.sql
Os comandos acima são tudo que você precisa para criar um arquivo SQL e tudo que você precisa para importá-lo, respectivamente – São executados separadamente, ok?
Cuidado com sobreposições, porque importar irá basicamente despejar o banco de dados existente e usar o arquivo SQL fornecido em seu lugar.
Além do banco de dados, você também é capaz de exportar e importar conteúdo de um WordPress para outro, por exemplo.
Portanto, veja um comando que usamos para exportar conteúdo – posts, termos (taxonomias), autores, comentários e anexos – para um arquivo XML:
wp export
Agora, digamos que gostaríamos de fazer o processo inverso e importar um arquivo XML gerado para outro WordPress…
Vamos primeiro instalar o importador, que um plugin, da seguinte forma:
wp plugin install wordpress-importer --activate
Em seguida, podemos fazer a importação, inclusive, criando um novo autor usando o parâmetro --authors
assim:
wp import wordpress.2022-03-16.000.xml --authors=create
Como Gerir Funções e Capacidades
WP-CLI pode gerenciar funções (roles) com facilidade usando o comando de wp role
.
wp role create organizador Organizador
wp cap list 'editor' | xargs wp cap add 'organizador'
wp cap add 'organizador' 'manage-events'
Os comandos acima criarão uma nova função (Organizador), adicionarão todas as capacidades da função de editor a ela e então adicionarão uma nova capacidade: manage-events
.
Além disso, você pode usar o WP-CLI para também mudar senhas do WordPress.
Como Gerenciar Conteúdo
WP-CLI vai permitir gerenciar todo seu conteúdo através de linhas de comando, mas esse é o tipo de coisa que não costumamos fazer desse nodo.
Mas, para fins de aprendizado, vamos ver alguns comandos, começando pela listagem de posts:
wp post list
Pode ver que é exibida uma lista com o ID, título, nome(slug), data e status, como nesse exemplo de saída:
+----+--------------+-------------+---------------------+-------------+
| ID | post_title | post_name | post_date | post_status |
+----+--------------+-------------+---------------------+-------------+
| 1 | Hello world! | hello-world | 2017-03-15 11:11:00 | publish |
+----+--------------+-------------+---------------------+-------------+
Desse modo, a partir dos IDs que você encontra na lista de posts, você pode executar comandos para posts específicos como, por exemplo, apagá-lo assim:
wp post delete 1
Agora, para criar um post, poderíamos usar o seguinte comando:
wp post create --post_status=publish --post_title="Post criado com o WP-CLI" --edit
Este comando abrirá o editor de texto padrão, então, insira o conteúdo e saia do editor pressionando o botão ESC, escreva: wq e pressione ENTER.
Não é tão produtivo criar posts por linha de comandos, mas que é uma opção interessante, isso é… Veja que dá pra criar a partir de um arquivo de texto desse jeito:
wp post create ./post.txt --post_title='Novo Post com WP-CLI' --post_status=publish
Medias
Um recurso interessante que temos usando o WP-CLI em relação às mídias, é que podemos automatizar o processo de importação.
Portanto, digamos que eu quisesse importante todas as imagens de uma pasta “site_images
“, poderia dar o seguinte comando:
wp media import site_images/*
Como Gerar Dados de Teste
Quando a gente está desenvolvendo sites é legal adicionar conteúdo fake para fazer testes, configurações e trabalhar em detalhes – Há plugins que fazem isso.
No entanto, você pode usar o WP-CLI para criar isso para você, por exemplo, aqui estão alguns comandos que irão gerar usuários com funções diferentes, termos e posts:
wp user generate --count=5 --role=editor
wp user generate --count=10 --role=author
wp term generate category --count=10
wp post generate --count=50
Como Administrar Eventos WP-Cron
WordPress trabalha com diversos eventos agendados usando WP-Cron e o WP-CLI pode enxergar a lista de eventos do cron atual usando o seguinte comando:
wp cron event list
Como Eliminar Transientes
Os transientes são usados no WordPress para armazenar temporariamente dados de plugins e temas.
Ao gerenciar transientes, você pode otimizar a velocidade e garantir que seu site esteja sempre funcionando corretamente.
Então, você pode até mesmo excluir e limpar um ou todos os transientes usando o seguinte comando:
wp transient delete --all
Contudo, se você estiver executando multisite, você precisará de um comando um pouco mais complicado.
Por padrão, o comando só verifica a tabela wp_options
, e não as que uma instalação multisite usa como por exmplo wp_1_options
, wp_2_options
, etc.
Então, aqui está o comando que precisaríamos rodar em uma rede de sites (multisite) para limpar os transientes em todas as tabelas.
wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all
Como Limpar a Tabela wp_options
Normalmente, a tabela wp_options
pode ser causar tempos de consulta lentos no seu site por causa de dados (lixo) que são deixados por plugins e temas.
Existe um um bom artigo da WP Bullet sobre como usar WP-CLI para limpar sua tabela wp_options.
Como Eliminar Revisões do WordPress
Assim como transientes e opções órfãs, as revisões do WordPress podem crescer rapidamente para milhares de registros no banco de dados.
Então, é interessante eliminar revisões e podemos usar isso com comandos do WP-CLI, como esse exeplo:
wp post delete $(wp post list --post_type='revision' --format=ids)
Como Controlar o Modo Manutenção
A partir do WP-CLI v2.2.0, você pode agora controlar o modo de manutenção no seu site WordPress.
Aqui estão os comandos que usamos para ativar, desativar e verificar o status de manutenção do WordPress:
wp maintenance-mode activate
wp maintenance-mode deactivate
wp maintenance-mode status
Usando Remotamente
Sem dúvida, uma das vantagens do WP-CLI é poder controlar instalações do WordPress remotamente.
Importante: Você precisa do WP-CLI instalado tanto no computador a partir do qual você está executando o comando quanto no seu servidor.
Configuração de Servidores Remotos
Para configurar servidores locais use o arquivo config.yml
– Você também pode usar os arquivos wp-cli.yml
ou wp-cli.local.yml
em seu diretório de trabalho atual.
Desse modo, a configuração dos servidores funciona mais ou menos assim – use isso em um dos arquivos que citei:
ssh:
staging:
cmd: ssh %pseudotty% [email protected] %cmd%
url: https://meusite.com.br
path: /www/path/to/site/root
Depois de adicionar o código acima no arquivo, você pode digitar o seguinte comando para atualizar o WordPress em seu site remoto:
wp ssh core update --host=staging
Percebe o quanto isso pode ajudar quem gerencia diversos sites WordPress?
O script pedirá uma senha, mas se você usar chaves RSA para entrar, pode facilitar isso também.
Como Usar Scripts Bash
Scripts Bash poupam ainda mais tempo ao automatizar tarefas.
As vezes precisamos usar uma sequência de comandos como vimos na no tópico sobre instalação do WordPress usando WP-CLI – lembra?
Podemos criar um script bash (por exemplo, um arquivo install.sh
) dentro de um diretório e tudo que precisamos fazer é digitar bash install.sh
para rodar a sequência.
Se você gerencia múltiplos sites, pode configurar todos os seus ambientes e criar um script bash como este aqui:
wp ssh core update --host=clientA
wp ssh core update --host=clientB
wp ssh core update --host=clientC
wp ssh core update --host=clientD
Como você pode fazer o que quiser com o WP-CLI, você pode até mesmo atualizar temas e plugins regularmente em vários sites de clientes ao mesmo tempo.
Que tal começar a explorar o WP-CLI? Aqui tem uma lista de comandos WP-CLI para você dominar a ferramenta – Ou acessa pelo Handbook oficial.
Considerações Finais
Se você é desenvolvedor ou gestor de múltiplos sites, se não tem medo de código, pode tirar um proveito muito grande da ferramenta WP-CLI.
Além disso, o WP-CLI pode ir além dos comandos básicos, sendo estendido por comandos de terceiros e outros comandos avançados.
Você pode ter um ganho significativos de produtividade não só rodando comandos simples, mas também quando faz uso de Scripts Bash.
Gostou desse conteúdo? Deixe um comentário abaixo!
Uma resposta
Gostei muito de escrever esse post, espero que ajude você! Ficou alguma dúvida?