Under Construction Thumbnail

Como desativar o seu site ou ativar o modo de manutenção no WordPress

Quando precisa de atualizar, redesenhar ou reparar um site WordPress em produção, os visitantes não devem ver uma página partida ou a meio. Um ecrã de manutenção pode ocultar o site público durante pouco tempo. Faça primeiro uma cópia de segurança e, sempre que puder, use uma cópia de testes para ter um caminho de regresso se algo correr mal.

Importante: o núcleo do WordPress não disponibiliza uma constante WP_MAINTENANCE_MODE no wp-config.php. Adicionar define( 'WP_MAINTENANCE_MODE', true ); não faz nada por si e não mostra uma página de manutenção. Se adicionou essa linha por conselho antigo, pode removê-la em segurança.

Como colocar um site WordPress em modo de manutenção

O WordPress tem de facto um modo de manutenção real e automático durante as atualizações, mas esse modo é apenas temporário. Para trabalho planeado que dure mais do que alguns minutos, use um plugin mantido do WordPress.org ou — se não puder usar um plugin — um fragmento curto e removível num tema filho.

1. Recomendado: usar um plugin de modo de manutenção

A abordagem mais simples para principiantes é um plugin do diretório oficial de plugins do WordPress. Duas opções consolidadas são o Maintenance da WebFactory e o LightStart da Themeisle (este plugin chamava-se WP Maintenance Mode). Consulte a ficha atual antes de instalar e siga o ecrã de definições do próprio plugin — os nomes dos botões podem mudar entre versões.

Passos típicos, com base nas notas de instalação desses plugins no WordPress.org:

  1. Faça uma cópia de segurança do site e, se possível, teste numa cópia de testes.
  2. Mantenha-se autenticado como administrador. No wp-admin, vá a Plugins → Adicionar novo, procure o plugin pelo nome, instale-o e ative-o.
  3. Abra a página de definições do plugin. O Maintenance acrescenta um item ao menu principal de administração; o LightStart usa uma página de Settings. Personalize a mensagem pública com os controlos que o plugin disponibiliza.
  4. Ative o modo de manutenção só quando estiver pronto. A ficha do LightStart indica que ativar o plugin pode colocar o site imediatamente em modo de manutenção, enquanto os utilizadores com permissões suficientes continuam a ver o front-end.
  5. Quando o trabalho terminar, desligue a manutenção nas definições do plugin, limpe qualquer cache de páginas e veja o site numa janela privada ou anónima, sem sessão iniciada, para confirmar que as páginas públicas voltaram. Só então desative o plugin se já não precisar dele.

As perguntas frequentes do LightStart avisam que os plugins de cache podem servir páginas antigas durante a manutenção. Se um plugin de cache permanecer ativo, apague a respetiva cache depois de ligar ou desligar o modo de manutenção.

O plugin Maintenance pode enviar uma resposta HTTP 503 («Service temporarily unavailable») para que os motores de busca tratem a interrupção como temporária. Mantenha essa janela curta. Um 503 prolongado ainda pode afetar a forma como o site é rastreado.

2. O que o WordPress faz por si durante as atualizações

Quando o WordPress atualiza o núcleo, um tema ou um plugin, cria temporariamente um ficheiro .maintenance na raiz do WordPress. Esse ficheiro guarda um carimbo de data/hora numa variável $upgrading. O núcleo trata o site como estando em modo de manutenção apenas enquanto esse carimbo tiver menos de cerca de 10 minutos. Decorridos cerca de 10 minutos, o WordPress considera a manutenção terminada mesmo que o ficheiro ainda exista.

Durante essa janela curta, o WordPress envia HTTP 503 com um cabeçalho Retry-After: 600 e mostra a mensagem “Briefly unavailable for scheduled maintenance. Check back in a minute.” Pode substituir esse ecrã breve por um ficheiro opcional chamado maintenance.php dentro de wp-content, mas esse ficheiro só se aplica enquanto o modo de manutenção do núcleo estiver realmente ativo.

Não crie um ficheiro .maintenance estático como interruptor duradouro de «fechado para manutenção». Não é um controlo manual permanente: ao fim de cerca de 10 minutos os visitantes voltam a ver o site, e um ficheiro sobrante após uma atualização falhada pode deixar uma mensagem confusa até o apagar. Se o ecrã de manutenção ficar preso depois de uma atualização, ligue-se por FTP ou pelo gestor de ficheiros do alojamento e elimine o .maintenance da raiz do WordPress.

O WordPress documenta isto em wp_is_maintenance_mode(), wp_maintenance(), nas notas sobre um ecrã de manutenção preso em erros comuns do WordPress e em Updating WordPress.

3. Opcional: um fragmento temporário num tema filho

Se não puder usar um plugin, adicione o seguinte ao functions.php de um tema filho — não de um tema pai que as atualizações irão substituir. O gancho template_redirect corre apenas no site público, pelo que o wp-admin e o ecrã de início de sessão continuam disponíveis. Os utilizadores autenticados que podem gerir opções continuam a ver o site. Os restantes recebem HTTP 503 e um cabeçalho Retry-After, o mesmo padrão que o núcleo do WordPress usa durante as atualizações. Remova o fragmento para restaurar o site público.

add_action( 'template_redirect', function () {
    if ( is_user_logged_in() && current_user_can( 'manage_options' ) ) {
        return;
    }

    header( 'Retry-After: 3600' );
    wp_die(
        'This site is temporarily unavailable for scheduled maintenance. Please check back soon.',
        'Maintenance',
        array( 'response' => 503 )
    );
} );

Use isto apenas como medida breve e temporária, e experimente primeiro numa cópia de testes. Depois de remover o código, limpe as caches e confirme que o site público volta a carregar sem sessão iniciada. Não deixe uma resposta 503 mais tempo do que o necessário.

Conclusão

Para ocultar um site WordPress durante trabalho planeado, use um plugin de manutenção mantido, desligue-o quando terminar e verifique as páginas públicas. O ficheiro .maintenance do WordPress é apenas um escudo automático e breve durante as atualizações — cerca de 10 minutos —, não um interruptor manual duradouro, e não existe nenhuma linha WP_MAINTENANCE_MODE para adicionar no wp-config.php. Faça primeiro uma cópia de segurança, limite o tempo de inatividade e depois restaure e verifique o site em produção.

Leave a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *