New plugins: core-tools New skills: auto-expense, ticket-triage, design, security-check, aiktop-tasks, daily-digest, imap-triage, index-update, mindmap, notebooklm, proc-creator, tasks-overview, validate-component, perfex-module, report, calendar-manager New agents: design-critic, design-generator, design-lead, design-prompt-architect, design-researcher, compliance-auditor, metabase-analyst, gitea-integration-specialist Updated: all plugin configs, knowledge datasets, existing skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
333 lines
9.2 KiB
Markdown
333 lines
9.2 KiB
Markdown
---
|
|
name: wp-cli
|
|
description: This skill should be used when the user asks to "wp-cli cwp", "gerir
|
|
wordpress linha de comandos", "actualizar plugins wp-cli", "backup wordpress cli",
|
|
"migrar site wordpress", "search replace wordpress", "criar utilizador wordpress cli",
|
|
"wp-cli no servidor", "wp-cli allow-root", "comandos wordpress server",
|
|
"actualizar wordpress servidor", "modo manutencao wordpress", "wp db export",
|
|
"wp plugin update server", "wp core update cwp". WP-CLI management on CWP server
|
|
(server.descomplicar.pt) with multi-PHP support.
|
|
author: Descomplicar® Crescimento Digital
|
|
version: 1.0.0
|
|
quality_score: 80
|
|
user_invocable: true
|
|
---
|
|
|
|
# /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*
|