Ao longo dos anos, os desenvolvedores de WordPress criaram e mantiveram o WP-CLI, uma interface de linha de comando robusta projetada especificamente para operações do WordPress. Como uma ferramenta que economiza tempo, o WP-CLI é particularmente adequado para gerenciar redes WordPress Multisite. Ele permite administrar múltiplos sites em uma única instalação do WordPress de forma simples e eficiente.
Para usar o WP-CLI com eficiência, é essencial que você entenda os principais componentes do WordPress: A interface de administração, a estrutura de arquivos e o banco de dados. Sem esse conhecimento básico, o WP-CLI pode não ser tão eficiente ou benéfico.
Embora o WP-CLI ofereça suporte a comandos padrão, como instalação, atualização, ativação, desativação e exclusão de plugins ou temas, seus recursos vão muito além do que está disponível no painel de controle do WordPress, tornando-o uma ferramenta altamente versátil para o gerenciamento avançado do site.
Este artigo explica como usar o WP-CLI para gerenciar redes WordPress Multisite de forma eficiente e fornece exemplos práticos para ajudar você a começar.
O que é o WP CLI e por que usá-lo?
O WP-CLI é uma ferramenta avançada para gerenciar sites WordPress por meio da linha de comando. Em um ambiente multisite, ele pode simplificar significativamente o gerenciamento de uma rede, permitindo que você execute ações em massa e otimize seu fluxo de trabalho.
Sua verdadeira força está na flexibilidade e na extensibilidade – você pode executar comandos sem esforço em toda a rede ou direcionar sites específicos, além de aprimorar sua funcionalidade com uma variedade de pacotes WP-CLI disponíveis no GitHub e em outros repositórios.
Os desenvolvedores geralmente criam comandos WP-CLI personalizados para simplificar tarefas repetitivas. Por exemplo, você pode usar o WP-CLI para criar um código padrão para temas e plugins, economizando tempo e esforço durante o desenvolvimento.
Se você estiver hospedando com a Kinsta, o WP-CLI já está integrado e acessível via SSH, permitindo que você gerencie sites WordPress com facilidade. Para o desenvolvimento local, o WP-CLI já está disponível no DevKinsta por meio do contêiner devkinsta_fpm
. Uma vez dentro do contêiner, você pode navegar até a pasta do seu site e executar comandos. Embora isso exija um pouco de configuração, ele oferece uma maneira poderosa de gerenciar seus sites locais do WordPress de forma eficiente para depuração, teste ou implementação.
Antes de você começar
Os comandos destacados neste artigo foram cuidadosamente escolhidos por serem usados com frequência por desenvolvedores e administradores do WordPress Multisite.
O WP-CLI é uma ferramenta ampla e flexível, o que impossibilita abranger todos os comandos disponíveis. Para manter as explicações claras e práticas, focamos em exemplos simples e acionáveis para começar.
Como o WP-CLI é baseado em comandos do Unix, talvez você não encontre um equivalente no WP-CLI para comandos que já existem no Unix.
Observações importantes sobre o WP-CLI
A estrutura de comandos do WP-CLI é flexível, permitindo que você obtenha o mesmo resultado de várias maneiras. Por exemplo, ambos os exemplos a seguir são válidos:
wp user create johndoe [email protected] --display_name="John Doe" --nickname="Johnny"
Ou:
wp user create johndoe --display_name="John Doe" [email protected] --nickname="Johnny"
A ordem das flags, parâmetros e valores não importa, desde que o comando e o subcomando sejam declarados.
Práticas recomendadas para executar comandos WP-CLI
Siga estas práticas recomendadas para evitar possíveis problemas:
- Sempre tenha um backup atual disponível, especialmente porque alguns desses comandos alterarão permanentemente o(s) seu(s) site(s).
- Use um site de teste sempre que possível. Se você estiver usando Kinsta, cada instalação do WordPress inclui um ambiente de teste gratuito para testes seguros. Você pode facilmente enviar alterações entre os ambientes de teste e de produção.
- Utilize a flag
--dry-run
para testar as alterações no banco de dados antes de aplicá-las.
Comandos essenciais do WP-CLI para gerenciamento do WordPress Multisite
Os comandos WP-CLI em uma rede multisite podem ter como alvo diferentes níveis de ação:
- Em toda a rede: Comandos aplicados em todos os sites da rede. Por exemplo:
wp plugin deactivate --network --all
Esse comando desativa todos os plugins em todos os sites da rede.
- Site principal: Comandos aplicados ao site principal criado durante a configuração do Multisite. Por exemplo:
wp plugin list
O comando acima lista todos os plugins instalados somente no site principal.
- Sites secundários: Comandos direcionados a sites individuais dentro da rede, especificados por seus URLs. Por exemplo:
wp plugin update --url=mysite.example.com akismet
Este comando atualiza o plugin
akismet
no sitemysite.example.com
.
Para facilitar o gerenciamento da sua rede Multisite, agrupamos os comandos WP-CLI nestas seções:
Comandos básicos
Esses comandos fundamentais ajudam você a solucionar problemas e gerenciar plugins e temas em sua rede.
Trabalhando com listas
O WP-CLI facilita a obtenção de listas de plugins e outros componentes em seu ambiente Multisite.
- Obter uma lista de todos os plugins na rede:
wp plugin list --network
Resultado: Exibe todos os plugins instalados na rede com detalhes como nome, status, atualizações disponíveis e versão.
- Filtre os plugins por status (por exemplo, ativo):
wp plugin list --network --status=active
Resultado: Uma tabela de plugins ativos na rede.
- Obter uma lista de plugins do site principal:
wp plugin list
Resultado: Uma lista de plugins para o site principal.
- Obter uma lista de plugins ativos para um único site:
wp plugin list --url=<site-url> --status=active
Exemplo de entrada:
wp plugin list --url=blog.example.com --status=active
Resultado: Uma tabela de plugins ativos para o site
blog.example.com
.
Além de filtrar os plugins por status=active
, você também pode usar os seguintes filtros:
inactive
: Plugins que estão instalados, mas não ativos.active-network
: Plugins ativos na rede.must-use
: Plugins de uso obrigatório que são carregados automaticamente.
Desativar plugins
Desativar plugins é frequentemente necessário ao solucionar problemas ou se preparar para atualizações. O WP-CLI permite desativar plugins em toda a rede ou em sites específicos.
- Desativar todos os plugins na rede:
wp plugin deactivate --network --all
Resultado: Todos os plugins da rede são desativados.
- Desativar plugins específicos para um único site:
wp plugin deactivate <plugin-slug-1> <plugin-slug-2> --url=<site-url>
Exemplo de entrada:
wp plugin deactivate akismet hello-dolly --url=blog.example.com
Resultado: Os plugins
akismet
ehello-dolly
estão desativados para o siteblog.example.com
.
Ativar plugins
Use esses comandos para ativar plugins em toda a rede ou para sites individuais em sua configuração de multisite.
- Ativar todos os plugins na rede:
wp plugin activate --network --all
Resultado: Todos os plugins da rede são ativados.
- Ativar plugins específicos para um único site:
wp plugin activate <plugin-slug-1> <plugin-slug-2> --url=<site-url>
Exemplo de entrada:
wp plugin activate akismet hello-dolly --url=blog.example.com
Resultado: Os plugins
akismet
ehello-dolly
estão ativados para o siteblog.example.com
.
Instalar plugins
A instalação de plugins com o WP-CLI é rápida e eficiente. Depois de instalados, os plugins podem ser ativados para sites individuais ou em toda a rede.
O comando a seguir pode ser usado para instalar um plugin para a rede:
wp plugin install <plugin-slug>
Exemplo de entrada:
wp plugin install akismet
Resultado: O plugin akismet
está instalado e pronto para ser ativado.
Atualizar plugins
Mantenha seus plugins atualizados em toda a rede ou em sites específicos usando esses comandos.
- Atualize todos os plugins da rede:
wp plugin update --network --all
Resultado: Todos os plugins da rede são atualizados.
- Atualizar plugins específicos em toda a rede:
wp plugin update <plugin-slug-1> <plugin-slug-2> --network
Exemplo de entrada:
wp plugin update akismet jetpack bbpress --network
Resultado: Os plugins
akismet
,jetpack
ebbpress
são atualizados na rede. - Atualize um plugin para um único site:
wp plugin update --url=<site-url> <plugin-slug>
Exemplo de entrada:
wp plugin update --url=blog.example.com hello-dolly
Resultado: O plugin
hello-dolly
é atualizado para o siteblog.example.com
.
Excluir plugins
A remoção de plugins é simples com o WP-CLI, quer você esteja trabalhando em um único site ou em uma rede multisite.
- Você pode excluir um plugin do contexto atual do WordPress (rede ou site):
wp plugin delete <plugin-slug>
Exemplo de entrada:
wp plugin delete bbpress
Resultado: O plugin
bbpress
foi excluído. - Excluir um plugin de um site específico em uma rede multisite:
wp plugin delete <plugin-slug> --url=<site-url>
Exemplo de entrada:
wp plugin delete bbpress --url=blog.example.com
Resultado: O plugin
bbpress
é excluído do siteblog.example.com
.
Gerenciamento de rede
Gerenciar sites em uma rede WordPress Multisite é uma tarefa crucial. Abaixo estão os comandos WP-CLI comuns para ajudar você a criar, gerenciar e excluir sites com eficiência, bem como lidar com operações de cache.
Criar sites
Adicionar novos sites à sua rede é simples com o WP-CLI.
- Comando básico: Crie um novo site especificando um slug exclusivo.
wp site create --slug=<site-name>
Exemplo de entrada:
wp site create --slug=blog
Resultado: Um novo site
blog.example.com
ouexample.com/blog
, dependendo da configuração da rede, é criado e fica automaticamente ativo.
- Comando avançado: Alternativamente, flags podem ser adicionadas ao comando. No exemplo abaixo, um site é criado com um título e um administrador específico.
wp site create --slug=<site-name> --title="<site-title>" --email=<admin-email>
Exemplo de entrada:
wp site create --slug=blog --title="Blog Site" [email protected]
Resultado: Um site intitulado “Blog Site” é criado com
[email protected]
como administrador.
- Listar todos os sites: Recupera uma tabela que exibe IDs de sites, URLs, datas de criação e datas da última atualização:
wp site list
Você também pode refinar a lista de sites para obter apenas as URLs de todos os sites da rede:
wp site list --field=url
Resultado: Uma lista de URLs para cada site.
Esvaziar e excluir sites
- Esvaziar o site principal:
wp site empty
Resultado: Um aviso de confirmação aparece para deletar todo o conteúdo do site principal.
- Esvaziar um único site (remove todos os artigos, páginas, links e taxonomias):
wp site empty --url=<site-url>
Exemplo de entrada:
wp site empty --url=blog.example.com
Resultado: Todo o conteúdo de
blog.example.com
é excluído, mas o site permanece intacto. - Esvazie todos os sites da rede:
wp site list --field=url | xargs -n1 -I % wp site empty --url=% --yes
Resultado: Este comando executa um loop por todas as URLs e esvazia o conteúdo de cada site sem a necessidade de confirmação para cada um.
- Excluir um único site por ID:
wp site delete <site-id>
Exemplo de entrada:
wp site delete 5
Resultado: O site com ID
5
é excluído. - Você pode excluir vários sites com o bypass de confirmação:
wp site delete 2 --yes wp site delete 3 --yes
Resultado: Os sites com IDs
2
e3
são excluídos. A flag--yes
ajuda você a ignorar os prompts.
Limpar cache
Como vários tipos de cache são armazenados de maneiras diferentes aqui, utilizamos o plugin Must-Use da Kinsta. Ele é instalado automaticamente para cada site WordPress em nosso sistema.
Este comando limpa todo o cache, incluindo cache do site, Edge Caching, cache do CDN e cache do Redis.
- Limpar todos os caches (site, Edge Caching, CDN e Redis):
wp kinsta cache purge --all
- Limpar apenas o cache do site:
wp kinsta cache purge --site
- Limpar o cache do CDN:
wp kinsta cache purge --cdn
- Limpar o cache de objetos:
wp cache purge
Gerenciamento de usuários
O WP-CLI simplifica o gerenciamento de usuários em um ambiente multisite, permitindo que você execute tarefas de forma rápida e eficiente. Esta seção aborda operações comuns de gerenciamento de usuários:
Listar usuários
Listar usuários em uma rede ou em um site específico é fácil com o WP-CLI.
- Liste todos os usuários na rede:
wp user list --network
Resultado: Uma tabela mostrando o ID do usuário, o login, o nome de exibição, o nome de usuário, a data de registro e a função de cada usuário ou consulta de lista de usuários.
- Lista de usuários para o site principal:
wp user list
Resultado: Exibe uma tabela de usuários para o site principal.
- Liste os usuários de um site específico (site secundário):
wp user list --blog_id=<id> wp user list --url=<url>
Exemplo de entrada:
wp user list --blog_id=6
Resultado: Exibe uma tabela de todos os usuários do site com ID de blog
6
.
Criar usuários
Em uma rede Multisite, os usuários são registrados na rede por padrão. Suas funções dependem do fato de serem o primeiro usuário adicionado a um site ou usuários subsequentes. Os nomes de usuários devem ter pelo menos quatro caracteres.
- Adicione um novo usuário ao site principal:
wp user create <username> <email>
Exemplo de entrada:
wp user create johndoe [email protected]
Resultado: Uma mensagem de sucesso é exibida, incluindo uma senha gerada.
- Adicionar um novo usuário a um site específico com uma função especificada:
wp user create <username> <email> --role=<role> --url=<url>
Exemplo de entrada:
wp user create janedoe [email protected] --role=editor --url=blog.example.com
Resultado: O usuário
janedoe
é adicionado ao siteblog.example.com
como um “Editor”. - Adicionar meta de conta de usuário durante a criação:
wp user create <username> <email> --display_name=<name> --nickname=<nickname>
Exemplo de entrada:
wp user create johndoe [email protected] --display_name="John Doe" --nickname="Johnny"
Resultado: O usuário
johndoe
é criado com um nome de exibiçãoJohn Doe
e um apelidoJohnny
.
Atualizar usuário
Atualizar informações de usuários, como funções ou senhas, é rápido com o WP-CLI.
- Altere (promova ou faça downgrade) as funções do usuário:
wp user update <username|email|user_id> --role=<role>
Exemplo de entrada:
wp user update johndoe janedoe adminuser --role=super-administrator
Resultado: Os usuários
johndoe
,janedoe
eadminuser
são promovidos a Super Administradores. - Redefinir ou alterar a senha de um usuário:
wp user update <username> --user_pass=<new_password>
Exemplo de entrada:
wp user update johndoe --user_pass=securePassword2024
Resultado: A senha do usuário
johndoe
é atualizada. - Comandos Daisy-chained: O WP-CLI permite que você combine várias ações em um único comando, economizando tempo ao editar usuários. Por exemplo, você pode atualizar simultaneamente a senha e a função de um usuário.
wp user update <user> --user_pass=<new_password> --role=<status>
Exemplo de entrada:
wp user update johndoe --user_pass="newPassword2024" --role=editor
Resultado: A senha do usuário
johndoe
é atualizada paranewPassword2024
e sua função é alterada para “Editor”.
Gerenciar meta de usuários
A meta de usuário permite adicionar, recuperar ou deletar metadados para contas de usuário.
- Obter meta do usuário:
wp user meta get <username> <meta_key>
Exemplo de entrada:
wp user meta get johndoe nickname
Resultado: Exibe o valor da meta-chave
nickname
para o usuáriojohndoe
. - Adicionar meta do usuário:
wp user meta add <username> <meta_key> <meta_value>
Exemplo de entrada:
wp user meta add johndoe display_name "Mr. John Doe"
Resultado:
Mr. John Doe
é definido como o nome de exibição do usuáriojohndoe
. - Excluir meta do usuário:
wp user meta delete <username> <meta_key>
Exemplo de entrada:
wp user meta delete johndoe display_name
Resultado: Esse comando exclui a meta-chave
display_name
do usuáriojohndoe
.
Excluir usuários
A remoção de usuários da rede ou de sites específicos é eficiente com o WP-CLI.
- Exclua um usuário da rede:
wp user delete <username|user_id> --network
Exemplo de entrada:
wp user delete johndoe --network
Resultado: O usuário
johndoe
é removido da rede. - Excluir um usuário de um site específico:
wp user delete <username|user_id> --url=<site-url>
Exemplo de entrada:
wp user delete johndoe --url=mysite.example.com
Resultado: O usuário
johndoe
é removido do sitemysite.example.com
.
Gerenciamento do banco de dados
O WP-CLI oferece uma alternativa poderosa a ferramentas como o phpMyAdmin para gerenciar seu banco de dados. Esta seção aborda operações comuns do banco de dados que você pode executar usando o WP-CLI:
Exportação de um banco de dados
Com o WP-CLI, você pode exportar o banco de dados como um arquivo SQL. O arquivo exportado é salvo no diretório raiz da sua instalação do WordPress.
wp db export
Resultado: Um arquivo SQL é criado no diretório raiz.
Se o arquivo exportado tiver um nome pouco agradável, você poderá renomeá-lo usando o seguinte comando:
wp eval 'if ( rename( "unganglyfilename.sql", "newfilename.sql" ) ) { echo "File renamed successfully."; } else { echo "Failed to rename file."; }'
Exemplo de entrada:
wp eval 'if ( rename( "cilawawugo4504_gTr4kSXUsmJ9FNauVnPb-2024-11-17-9545b3f.sql", "network-db.sql" ) ) { echo "File renamed successfully."; } else { echo "Failed to rename file."; }'
Resultado: O arquivo cilawaw…nPb--9545b3f.sql
é renomeado para network-db.sql
.
Download de um banco de dados
Para fazer o download do arquivo do banco de dados exportado para o seu computador local, use o comando curl
.
curl <remote-url> -o <local-path>
Exemplo de entrada:
curl example.com/network-db.sql -o ~/Downloads/network-db.sql
Resultado: O arquivo network-db.sql
é baixado para o diretório local Downloads
.
Carregamento de um banco de dados
Você pode carregar um arquivo do banco de dados para o diretório raiz da instalação do Multisite usando o comando scp
.
scp <local-path-to-file> <username>@<remote-server>:<remote-path>
Exemplo de entrada:
scp ~/Downloads/network-db.sql [email protected]:/var/www/example.com/public_html
Resultado: O arquivo network-db.sql
é carregado no diretório raiz da sua instalação do WordPress após a autenticação.
Importação de um banco de dados
Antes de importar um banco de dados, talvez você precise redefinir as tabelas de dados existentes.
- Redefinir tabelas de dados:
wp db reset
Resultado: Todas as tabelas de dados do banco de dados são redefinidas.
- Importe o banco de dados:
wp db import <file-name.sql>
Exemplo de entrada:
wp db import network-db.sql
Resultado: O arquivo
network-db.sql
preenche as tabelas de dados redefinidas. - Excluir o arquivo SQL importado: Por motivos de segurança, exclua o arquivo SQL após a importação:
rm <file-name.sql>
Exemplos práticos
Estes comandos mostram como acelerar e simplificar seu fluxo de trabalho. Apesar de alguns serem mais complexos, eles se baseiam em comandos simples para realizar operações úteis.
Instalar e ativar plugins e regenerar miniaturas simultaneamente
Esse comando percorre todos os sites da rede, instala e ativa dois plugins e gera novamente miniaturas de imagens para cada site.
wp site list --field=url | xargs -n1 -I % sh -c 'wp plugin activate <plugin slug> <plugin slug> --url=% && wp media regenerate --url=%'
Exemplo de entrada:
wp site list --field=url | xargs -n1 -I % sh -c 'wp plugin install akismet bbpress --activate --url=% && wp media regenerate --url=%'
Resultado: Os plugins Akismet
e BBPress
são instalados e ativados em todos os sites, e as miniaturas de imagens são geradas novamente.
Adicionar um campo meta personalizado para todos os usuários
Este comando percorre todos os sites, recupera a lista de usuários e adiciona um campo meta personalizado para cada usuário.
wp site list --field=url | xargs -n1 -I % sh -c 'wp user list --fields=ID --url=% --format=csv | tail -n +2 | xargs -n1 -I {} wp user meta add {} <meta-key> <meta-value> --url=%'
Exemplo de entrada:
wp site list --field=url | xargs -n1 -I % sh -c 'wp user list --fields=ID --url=% --format=csv | tail -n +2 | xargs -n1 -I {} wp user meta add {} favorite_color "" --url=%'
Resultado: Um campo meta personalizado, favorite_color
, é adicionado para todos os usuários em todos os sites.
Para exibir o campo favorite_color
, você precisará usar o arquivo functions.php
ou criar um plugin personalizado.
Converter uma instalação de site único para Multisite
O WP-CLI facilita a conversão de um site autônomo do WordPress em uma rede multisite.
wp core multisite-convert
Resultado: O site único é convertido em uma rede multisite.
Antes da conversão, certifique-se de desativar todos os plugins.
Após a conversão, configure as URLs da rede no arquivo wp-config.php
. Escolha entre usar subdomínios (por exemplo, site.example.com
) ou subdiretórios (por exemplo, example.com/site
). Além disso, verifique o arquivo .htaccess
, pois as regras de reescrita de URLs (manipuladas pelo módulo mod_rewrite
do Apache) podem precisar de atualizações manuais para garantir que seus permalinks e estrutura do site funcionem corretamente.
Resumo
Este guia destaca o poder e a flexibilidade do WP-CLI para gerenciar ambientes WordPress Multisite, tornando-o uma ferramenta essencial para desenvolvedores e administradores que buscam eficiência e controle. Desde a manipulação de plugins, usuários e bancos de dados até a realização de operações avançadas, como a conversão de sites únicos em multisite, o WP-CLI simplifica tarefas complexas com precisão e velocidade.
A Kinsta oferece uma ferramenta WP-CLI inestimável e extensível que permite o gerenciamento perfeito de redes WordPress Multisite. Seja em ambientes de produção, teste ou utilizando nossa ferramenta de desenvolvimento local, o DevKinsta, o WP-CLI está sempre disponível para otimizar seu fluxo de trabalho.
Comece a criar sites, adicionar plugins, usuários e muito mais com o WP-CLI!
Deixe um comentário