Blog

WP-CLI ➜ Guia Exclusivo para Controlar o WordPress através de Linha de Comando

WP-CLI-Guia-Exclusivo-Controlar-WordPress-Linha-Comando
Coding Potencialize

WP-CLI ➜ Guia Exclusivo para Controlar o WordPress através de Linha de Comando

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):

  1. Iniciar → Painel de Controle → Sistema
  2. Avançado → Variáveis de Ambiente
  3. Encontre a entrada Path em “Variáveis do Sistema” e abra clicando duas vezes
  4. Digite seu diretório PHP no final, incluindo ‘;’ antes (por exemplo ;C:\php)
  5. 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
Saída para o comando acima

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:

  1. Primeiro baixamos a versão estável mais recente do WordPress
  2. Criamos um arquivo de configuração com os dados de conexão com o banco de dados
  3. Aproveitamos para para passar PHP adicional para ativar o DEBUG do WordPress usando constantes nativas
  4. Em seguida, criamos o banco de dados (certifique-se sobre os dados de acesso ao BD)
  5. 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
Lista de plugins usando WP-CLI
Lista de plugins usando WP-CLI

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.

URL do repositório de plugins do WordPress
URL do repositório de plugins do WordPress
Pesquisa de plugins com o termo "contact" usando WP-CLI
Pesquisa de plugins com o termo “contact”

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
Instalando a versão 18.0 do Yoast SEO usando WP-CLI
Instalando a versão 18.0 do Yoast SEO

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
Atualizando o Yoast SEO usando WP-CLI
Atualizando o Yoast SEO usando WP-CLI

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
Processo rodando com WP-CLI

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
Listagem de eventos cron do WordPress usando WP-CLI
Listagem de eventos cron do WordPress

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_optionswp_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!

Deixe seu comentário aqui...

O seu endereço de e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Nosso site usa cookies e, portanto, coleta informações sobre sua visita para melhorar nosso site (por meio de análise), mostrar a você conteúdo de mídia social e anúncios relevantes. Por favor, consulte nossa página Termos & Políticas para mais detalhes ou concorde clicando no botão 'Aceitar'. OBS: Ao continuar a navegação, você, automaticamente, concorda.

Configurações de Cookies

Abaixo, você pode escolher os tipos de cookies que quer permitir neste site. Clique no botão "Salvar Configurações de Cookies" para aplicar sua escolha.

FuncionalNosso site usa cookies funcionais. Esses cookies são necessários para permitir que nosso site funcione.

AnalíticoNosso site usa cookies analíticos para permitir a análise de nosso site e a otimização para o propósito de a.o. a usabilidade.

Mídia SocialNosso site coloca cookies de mídia social para mostrar conteúdo de terceiros, como YouTube e Facebook. Esses cookies podem rastrear seus dados pessoais.

PublicidadeNosso site coloca cookies de publicidade para mostrar anúncios de terceiros com base em seus interesses. Esses cookies podem rastrear seus dados pessoais.

OutrosNosso site coloca cookies de terceiros de outros serviços que não são analíticos, mídia social ou publicidade.