Files
claude-plugins/wordpress/skills/wp-cli/SKILL.md
Emanuel Almeida 6b3a6f2698 feat: refactor 30+ skills to Anthropic progressive disclosure pattern
- All SKILL.md files now <500 lines (avg reduction 69%)
- Detailed content extracted to references/ subdirectories
- Frontmatter standardised: only name + description (Anthropic standard)
- New skills: brand-guidelines, spec-coauthor, report-templates, skill-creator
- Design skills: anti-slop guidelines, premium-proposals reference
- Removed non-standard frontmatter fields (triggers, version, author, category)

Plugins affected: infraestrutura, marketing, dev-tools, crm-ops, gestao,
core-tools, negocio, perfex-dev, wordpress, design-media

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:05:03 +00:00

323 lines
8.8 KiB
Markdown

---
name: wp-cli
description: Gestão WordPress via WP-CLI no servidor CWP. Cobre core, plugins, temas, base de dados, utilizadores, migração, search-replace e automação com suporte multi-PHP.
---
# /wp-cli - Gestão WordPress via WP-CLI no CWP
Operações WordPress via linha de comandos no servidor CWP (server.descomplicar.pt). Cobre core, plugins, temas, base de dados, utilizadores, migração e automação.
**Servidor:** server.descomplicar.pt (176.9.3.158) | porta SSH: 9443
**Fonte:** `Hub/06-Operacoes/Documentacao/Manuais/WP-CLI no CWP.md`
**NotebookLM:** [WordPress Config CLI](https://notebooklm.google.com/notebook/fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d)
---
## Contexto CWP — Regras Obrigatórias
```bash
# 1. Usar sempre --allow-root (CWP executa como root)
# 2. Especificar sempre --path= (não fazer cd)
# 3. Usar o PHP correcto para cada utilizador
# Formato base
/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp COMANDO --allow-root --path=/home/USER/public_html
# Aliases ~/.bashrc (se configurados)
alias wp74='/opt/alt/php-fpm74/usr/bin/php /usr/local/bin/wp --allow-root'
alias wp82='/opt/alt/php-fpm82/usr/bin/php /usr/local/bin/wp --allow-root'
alias wp83='/opt/alt/php-fpm83/usr/bin/php /usr/local/bin/wp --allow-root'
```
### Versões PHP disponíveis
| Alias | PHP | Path |
|-------|-----|------|
| `wp74` | 7.4 | `/opt/alt/php-fpm74/usr/bin/php` |
| `wp80` | 8.0 | `/opt/alt/php-fpm80/usr/bin/php` |
| `wp81` | 8.1 | `/opt/alt/php-fpm81/usr/bin/php` |
| `wp82` | 8.2 | `/opt/alt/php-fpm82/usr/bin/php` |
| `wp83` | 8.3 | `/opt/alt/php-fpm83/usr/bin/php` |
### Detectar PHP activo de um utilizador
```bash
# Ver pool PHP-FPM do utilizador
ps aux | grep "php-fpm: pool USER" | grep -v grep | head -1
# Ou usar wp-auto.sh (auto-detect)
/root/wp-auto.sh --path=/home/USER/public_html plugin list
```
O script `wp-auto.sh` está em `scripts/wp-auto.sh` desta skill.
---
## Core WordPress
```bash
PATH=/home/USER/public_html
# Verificar versão
wp core version --allow-root --path=$PATH
# Actualizar WordPress
wp core update --allow-root --path=$PATH
# Verificar integridade dos ficheiros
wp core verify-checksums --allow-root --path=$PATH
# Instalar versão específica
wp core download --version=6.4.3 --force --allow-root --path=$PATH
# Informações ambiente
wp --info --allow-root --path=$PATH
```
---
## Plugins
```bash
# Listar todos os plugins
wp plugin list --allow-root --path=$PATH
# Listar plugins desactualizados
wp plugin list --update=available --format=table --allow-root --path=$PATH
# Actualizar todos os plugins
wp plugin update --all --allow-root --path=$PATH
# Instalar e activar
wp plugin install akismet --activate --allow-root --path=$PATH
# Activar / desactivar
wp plugin activate NOME --allow-root --path=$PATH
wp plugin deactivate NOME --allow-root --path=$PATH
# Remover plugin
wp plugin delete NOME --allow-root --path=$PATH
# Verificar integridade
wp plugin verify-checksums --all --allow-root --path=$PATH
```
---
## Temas
```bash
# Listar temas
wp theme list --allow-root --path=$PATH
# Instalar e activar
wp theme install hello-elementor --activate --allow-root --path=$PATH
# Actualizar todos os temas
wp theme update --all --allow-root --path=$PATH
# Activar tema
wp theme activate NOME --allow-root --path=$PATH
```
---
## Base de Dados
```bash
# Exportar (backup)
wp db export /home/USER/backup_$(date +%Y%m%d_%H%M).sql --allow-root --path=$PATH
# Importar (restaurar)
wp db import backup.sql --allow-root --path=$PATH
# Optimizar tabelas
wp db optimize --allow-root --path=$PATH
# Reparar tabelas corrompidas
wp db repair --allow-root --path=$PATH
# Query directa
wp db query "SELECT option_name, option_value FROM wp_options WHERE option_name='siteurl';" --allow-root --path=$PATH
# Tamanho tabelas
wp db query "SELECT table_name, ROUND((data_length+index_length)/1024/1024,2) AS MB FROM information_schema.tables WHERE table_schema=DATABASE() ORDER BY MB DESC LIMIT 20;" --allow-root --path=$PATH
```
---
## Migração de Site (Search-Replace)
```bash
# Preview (dry-run) — SEMPRE primeiro
wp search-replace 'https://old.com' 'https://new.com' --dry-run --allow-root --path=$PATH
# Executar após confirmar
wp search-replace 'https://old.com' 'https://new.com' --allow-root --path=$PATH
# Com relatório
wp search-replace 'old.com' 'new.com' --report --allow-root --path=$PATH
# Após migração: limpar cache e regenerar rewrite rules
wp cache flush --allow-root --path=$PATH
wp rewrite flush --allow-root --path=$PATH
```
---
## Utilizadores
```bash
# Listar utilizadores
wp user list --allow-root --path=$PATH
# Criar administrador
wp user create admin admin@site.pt --role=administrator --user_pass=SENHA --allow-root --path=$PATH
# Redefinir password
wp user update USERNAME --user_pass=NOVA_SENHA --allow-root --path=$PATH
# Adicionar papel a utilizador existente
wp user set-role USERNAME administrator --allow-root --path=$PATH
# Remover utilizador (transferindo conteúdo)
wp user delete USERNAME --reassign=1 --allow-root --path=$PATH
# Actualizar email admin
wp option update admin_email "novo@email.pt" --allow-root --path=$PATH
```
---
## Cache e Transientes
```bash
# Limpar object cache (Redis/Memcached)
wp cache flush --allow-root --path=$PATH
# Apagar todos os transientes
wp transient delete --all --allow-root --path=$PATH
# Regenerar rewrite rules
wp rewrite flush --allow-root --path=$PATH
# Sequência completa pós-alteração
wp cache flush --allow-root --path=$PATH && \
wp transient delete --all --allow-root --path=$PATH && \
wp rewrite flush --allow-root --path=$PATH
```
---
## Modo Manutenção
```bash
# Activar modo manutenção
wp maintenance-mode activate --allow-root --path=$PATH
# Verificar estado
wp maintenance-mode status --allow-root --path=$PATH
# Desactivar
wp maintenance-mode deactivate --allow-root --path=$PATH
```
---
## Cron WordPress
```bash
# Listar eventos cron
wp cron event list --allow-root --path=$PATH
# Executar evento manualmente
wp cron event run HOOK_NAME --allow-root --path=$PATH
# Ver schedules disponíveis
wp cron schedule list --allow-root --path=$PATH
# Apagar evento
wp cron event delete HOOK_NAME --allow-root --path=$PATH
```
---
## Operações em Massa (Todos os Sites)
```bash
# Encontrar todas as instalações WordPress
find /home -name wp-config.php -not -path "*/backup*" 2>/dev/null | while read config; do
dir=$(dirname "$config")
user=$(stat -c '%U' "$dir")
echo "=== $user: $dir ==="
done
# Actualizar todos os sites (com PHP auto-detect)
find /home -name wp-config.php -not -path "*/backup*" 2>/dev/null | while read config; do
dir=$(dirname "$config")
user=$(stat -c '%U' "$dir")
echo "--- Actualizando $user ---"
php_fpm=$(ps aux | grep "php-fpm: pool ${user}" | grep -v grep | head -1 | grep -o 'php-fpm[0-9][0-9]' | head -1)
php_ver=${php_fpm:-php-fpm82}
/opt/alt/${php_ver}/usr/bin/php /usr/local/bin/wp core update --allow-root --path="$dir" 2>/dev/null
/opt/alt/${php_ver}/usr/bin/php /usr/local/bin/wp plugin update --all --allow-root --path="$dir" 2>/dev/null
done
```
---
## Erros Comuns e Soluções
| Erro | Causa | Solução |
|------|-------|---------|
| `Operation not permitted` | Sem `--allow-root` | Adicionar `--allow-root` |
| `PHP Fatal error: memory` | Limite memória | `define('WP_MEMORY_LIMIT','256M')` no wp-config.php |
| `max_execution_time exceeded` | Timeout em ops longas | `--exec-time=300` ou php.ini |
| `Error establishing database connection` | BD em baixo | `wp db check --allow-root` |
| `Warning: Could not get lock` | Outro processo activo | `wp cli cache clear --allow-root` |
| PHP version wrong | Site usa PHP diferente | `ps aux \| grep "pool USER"` para detectar |
---
## Diagnóstico Rápido
```bash
# Informações completas do ambiente
wp --info --allow-root --path=$PATH
# Verificar conectividade BD
wp db check --allow-root --path=$PATH
# Ver configuração PHP activa
wp eval 'echo PHP_VERSION."\n".php_ini_loaded_file()."\n".ini_get("memory_limit")."\n";' --allow-root --path=$PATH
# Ver URL e email admin
wp option get siteurl --allow-root --path=$PATH
wp option get admin_email --allow-root --path=$PATH
# Listar utilizadores admin
wp user list --role=administrator --allow-root --path=$PATH
```
---
## Recursos Adicionais
### Scripts
- **`scripts/wp-auto.sh`** — Auto-detecta PHP do utilizador e executa WP-CLI com a versão correcta
### Referências
- **`references/commands.md`** — Referência completa: todos os comandos com flags, WooCommerce CLI, options, wp eval avançado
### Documentação Hub
- **Manual:** `Hub/06-Operacoes/Documentacao/Manuais/WP-CLI no CWP.md`
- **NotebookLM:** [WordPress Config CLI](https://notebooklm.google.com/notebook/fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d)
- **Skill relacionada:** `/rank-math` — operações Rank Math SEO via WP-CLI
---
*WP-CLI no CWP | Descomplicar® | v1.0.0 | 18-02-2026*