# Utilizar o WP-CLI no Seu Site WordPress

Source: https://support.kapsulehost.com/pt-pt/wordpress-wp-cli

KPanel inclui uma consola WP-CLI que executa comandos no seu site WordPress a partir do navegador, sem cliente SSH e sem iniciar sessão no servidor. Este guia explica onde a encontrar, quais os comandos exatamente permitidos e porquê, os atalhos integrados no ecrã, e o que fazer quando precisa de algo que a consola não executa.

## Abrir a Consola

1. Inicie sessão em [KPanel](https://kpanel.kapsulehost.com) e clique em **Websites** na barra lateral esquerda.
2. Clique no seu site WordPress.
3. Abra o separador **WordPress** e, depois, a secção **Console**.

![Consola WP-CLI num site WordPress no KPanel](https://support.kapsulehost.com/help/screenshots/wordpress-wp-cli.c3f61741.webp)

A entrada já começa com um `wp` fixo, pelo que só escreve o que vem depois dele. `plugin list`, não `wp plugin list`. Prima Enter ou clique em **Run**.

> **Note:** **Console** é uma das secções que aparecem nos planos geridos. Noutros planos, a faixa de separadores termina com um link **+8 on Managed** em alternativa. Todas as ações aqui descritas que não sejam um comando em bruto têm um botão equivalente noutro ponto do KPanel, pelo que nada fica fora de alcance: a consola é apenas uma forma mais rápida de chegar ao mesmo motor.

Os comandos são executados como o próprio utilizador de sistema do seu site, dentro do diretório do seu site. Não conseguem ver nem tocar em qualquer outro site.

## O Que a Consola Executa e o Que Não Executa

A consola utiliza uma lista de permissões. Apenas os prefixos de comando abaixo são aceites, e qualquer outro é rejeitado antes de chegar ao servidor, com uma mensagem a identificar o comando recusado.

| Área | Permitido |
|---|---|
| Core | `core version`, `core check-update`, `core update`, `core is-installed`, `core verify-checksums` |
| Plugins | `plugin list`, `plugin update`, `plugin install`, `plugin activate`, `plugin deactivate`, `plugin status`, `plugin get`, `plugin delete`, `plugin verify-checksums` |
| Temas | `theme list`, `theme update`, `theme install`, `theme activate`, `theme status`, `theme get`, `theme delete` |
| Utilizadores | `user list`, `user get`, `user create`, `user update`, `user set-role`, `user delete`, `user reset-password`, `user add-cap`, `user remove-cap`, `user generate` |
| Base de dados | `db size`, `db tables`, `db optimize`, `db repair`, `db check` |
| Cache e transients | `cache flush`, `cache get`, `cache set`, `cache add`, `cache delete`, `transient get`, `transient set`, `transient delete` |
| Regras de reescrita | `rewrite flush`, `rewrite list`, `rewrite structure` |
| Cron | `cron event list`, `cron event run`, `cron schedule list` |
| Configuração | `config get`, `config list`, `config has`, `config shuffle-salts` |
| Modo de manutenção | `maintenance-mode activate`, `maintenance-mode deactivate`, `maintenance-mode status` |
| Inspeção apenas de leitura | `option get`, `option list`, `post list`, `post get`, `comment list`, `comment get` |
| Media e idioma | `media regenerate`, `language core install`, `language core update` |
| Procurar e substituir | `search-replace` |

As exclusões deliberadas importam mais do que as inclusões:

- **`eval` e `shell`** estão bloqueados. PHP arbitrário e shell arbitrária tornariam a consola equivalente a uma linha de comandos root num separador do navegador.
- **`db import`, `db export`, `db drop`, `db query` e `db reset`** estão bloqueados. Importar e repor destroem uma base de dados sem qualquer confirmação; `db query` é uma linha de comandos SQL sem restrições. Em vez disso, utilize o phpMyAdmin: [Aceder à Sua Base de Dados com o phpMyAdmin](https://support.kapsulehost.com/pt-pt/sites-phpmyadmin).
- **`config set` e `config delete`** estão bloqueados. Uma escrita incorreta em `wp-config.php` coloca o site fora do ar. Consulte os valores aqui, altere-os através do gestor de ficheiros.
- **`option update` e `option delete`** estão bloqueados. Editar opções às cegas é uma forma comum de danificar um site sem possibilidade de recuperação.

> **Warning:** A consola não faz qualquer cópia de segurança por si, em nenhum comando. Só os botões da secção **Ações Rápidas** fazem isso. Antes de `search-replace`, `core update`, `plugin update`, `theme update`, `db optimize` ou `db repair`, faça você mesmo uma cópia de segurança a partir da página **Cópias de segurança** do site. Consulte [Fazer uma Cópia de Segurança](https://support.kapsulehost.com/pt-pt/taking-a-backup).

## Trabalhar na Consola

O ecrã faz mais do que aceitar um comando de cada vez.

**Botões predefinidos.** Atalhos agrupados situam-se acima da linha de comandos: Desempenho (limpar cache, limpar transients, limpar regras de reescrita, verificação de autoload), Base de Dados (otimizar, verificar, reparar, tamanho), Diagnóstico (versão do WP, verificar atualizações, verificar o core, eventos cron), Conteúdo (listar plugins, temas, utilizadores, executar cron agora), Segurança (utilizadores administradores, checksums de plugins, repor salts, wp-config) e Manutenção (ativar e desativar o modo de manutenção, regenerar miniaturas, estado). Um clique executa o comando.

**Histórico.** Prima as setas para cima e para baixo na linha de comandos para percorrer os últimos 50 comandos neste site.

**Snippets.** Clique no ícone de marcador junto a um comando para o guardar com um nome, de modo a que uma instrução longa que utiliza todos os meses fique a apenas um clique da próxima vez.

**Cartão de ambiente.** Acima da linha de comandos, um cartão mostra a versão do PHP, a versão do WordPress, o limite de memória, a memória atualmente utilizada, o máximo de carregamento e o limite de tempo de execução do site, com um botão **Copiar para suporte** que coloca tudo isto, mais a sua lista de plugins ativos, na área de transferência. Cole isso num pedido de suporte e poupa uma troca de mensagens desnecessária.

**Copiar resultado.** Cada bloco de resultados tem botões de copiar e limpar.

O resultado é transmitido à medida que o comando é executado, pelo que uma operação longa mostra progresso em vez de ficar silenciosa.

## Comandos a Conhecer

### Diagnóstico

```
core version
core verify-checksums
plugin verify-checksums --all
plugin list --status=active --format=table
db size --tables
option list --autoload=yes
```

`verify-checksums` compara os ficheiros do core e dos plugins com as cópias oficiais publicadas e reporta qualquer alteração. É a verificação inicial mais rápida num site que suspeita ter sido adulterado.

`option list --autoload=yes` lista todas as opções que o WordPress carrega em cada pedido. Uma tabela de autoload sobrecarregada é uma das causas mais comuns de um site lento sem motivo aparente.

### Manutenção Geral

```
cache flush
transient delete --all
rewrite flush
db optimize
cron event list
cron event run --due-now
```

### Utilizadores

```
user list --role=administrator --format=table
user create jo jo@example.com --role=editor
user update 4 --user_pass='a-long-unique-password'
```

Tudo o que for escrito aqui fica registado no registo de atividade da sua conta, incluindo palavras-passe. Altere uma palavra-passe definida desta forma assim que iniciar sessão. Os detalhes completos sobre a recuperação de conta encontram-se em [Repor uma Palavra-passe de Administrador do WordPress Perdida](https://support.kapsulehost.com/pt-pt/wordpress-reset-password).

### Procurar e Substituir

```
search-replace 'http://old-domain.co.nz' 'https://old-domain.co.nz' --all-tables --dry-run
```

Faça sempre primeiro uma simulação (dry run). A explicação completa, incluindo o motivo pelo qual uma substituição SQL em bruto corrompe uma base de dados WordPress, encontra-se em [Executar uma Pesquisa e Substituição](https://support.kapsulehost.com/pt-pt/wordpress-search-replace).

## Consola ou Ações Rápidas?

Ambas executam o mesmo WP-CLI por baixo. Escolha com base no seguinte:

| Tarefa | Melhor opção |
|---|---|
| Limpar cache, atualizar plugins, regenerar media | **Ações Rápidas**, um clique e faz primeiro uma cópia de segurança |
| Pesquisa e substituição com pré-visualização por tabela | **Ações Rápidas**, o cartão Search & Replace |
| Qualquer coisa que precise de uma flag específica | Consola |
| Listar, inspecionar, diagnosticar | Consola |
| Executar um evento cron em atraso | Consola |
| Editar `wp-config.php` ou importar uma base de dados | Nenhuma das duas. Utilize o gestor de ficheiros ou o phpMyAdmin |

## Quando Precisa de Mais do Que a Lista de Permissões

Para um WP-CLI sem restrições, ligue-se por SSH e execute `wp` diretamente a partir do diretório do seu site. O SSH utiliza apenas autenticação por chave, pelo que deve primeiro adicionar a sua chave pública a partir do separador **Definições** do site e, depois, do separador **Chaves SSH**. Os detalhes de ligação, incluindo o anfitrião, a porta e o nome de utilizador exatos, são apresentados nesse mesmo ecrã. Consulte [Adicionar Chaves SSH](https://support.kapsulehost.com/pt-pt/adding-ssh-keys) e [Ligar por SFTP](https://support.kapsulehost.com/pt-pt/sftp-access).

## Resolução de Problemas

**"'x y' is not in the allowed command list."** O comando não consta da lista de permissões. Consulte a tabela acima para encontrar o equivalente permitido mais próximo, ou utilize SSH.

**"No results returned. Check that WP-CLI is available."** O comando foi executado mas não imprimiu nada. Normalmente, é o comportamento correto para uma consulta sem resultados.

**O comando esgota o tempo limite.** Os comandos da consola têm um limite de 60 segundos. Operações longas, como a regeneração de uma biblioteca de media de grandes dimensões, devem ser executadas a partir das **Ações Rápidas**, que utiliza um limite mais longo, ou por SSH.

**Nada é executado e os botões estão desativados.** A sua função na conta KapsuleHost é apenas de leitura para este site. Peça a um titular da conta para a alterar.
