Para impedir que meus visitantes vejam uma versão corrompida do meu site durante a manutenção e para avisar sobre as atualizações, eu gostaria de redirecioná-los automaticamente para uma página de manutenção temporária. Estou procurando uma solução portátil que possa ser usada em qualquer site, sem URLs codificados.
Os administradores conectados (ou outro nível de usuário preferido) devem ter acesso total ao back-end e ao front-end. Existem muitos plugins por aí que oferecem essa funcionalidade, mas estou procurando uma solução apenas de código.
maintenance
Novo usuário
fonte
fonte
Respostas:
O WordPress possui um recurso incorporado para lidar com o modo de manutenção.
Quando você atualiza um plugin ou núcleo do WordPress a partir do painel do WP, o WordPress entra no modo de manutenção: ele tenta carregar um arquivo nomeado
maintenance.php
localizado na pasta de conteúdo (geralmente/wp-content
) e, se esse arquivo não estiver lá, o WP mostra uma mensagem padrão.Eu sugiro que você use esse arquivo, assim você será consistente para a manutenção acionada manualmente e para a manutenção manipulada pelo WordPress.
Como
Primeiro, crie o
maintenance.php
arquivo e coloque lá o conteúdo que você deseja. Para estilizar, sugiro que você coloque CSS no próprio arquivo, usando<style>
tag; Geralmente, esse não é um bom conselho, mas, nesse caso, oferece a capacidade de usar o arquivo no modo de manutenção gerenciada pelo WordPress, quando nenhum tema é carregado (e o tema pode estar sendo atualizado, portanto, não é confiável).Salve o arquivo recém-criado na pasta de conteúdo (normalmente
/wp-content
).Em seu
functions.php
put:Este código verificará uma constante (consulte o próximo ponto) e, se o usuário não estiver logado, carregue o arquivo criado no ponto 1 e saia.
Se você deseja permitir apenas usuários com recursos específicos, use em
current_user_can('capability_to_allow')
vez deis_user_logged_in()
. Veja Codex para mais informações.Talvez você possa adicionar a
maintenance.php
um link à página de login; dessa forma, um usuário não logado pode clicar nele sem ter que inserir manualmente o URL de login na barra de endereço.Se você estiver usando um tema desenvolvido por terceiros, use um tema filho ; Dessa forma, você poderá atualizar o tema com segurança sem perder suas alterações.
Quando você deseja ativar o modo de manutenção, abra o seu
wp_config.php
e coloque lá:Depois disso, quando você está pronto para fazer o seu site público novamente, basta remover essa linha ou mudança
true
parafalse
a fácil re-habilitação.fonte
define('WP_CONTENT_DIR','/url/to/define/');
seuwp-config.php
arquivo.A resposta anterior está completa e bem escrita. De qualquer forma, se você é como eu e deseja ter tudo em um só lugar, pode soltar as seguintes linhas no
function.php
arquivo e criar ummaintenance.php
arquivo no diretório de temas.Isso é especialmente útil se o seu repositório Git apontar apenas para o diretório do tema.
NOTAS
Mudei o cabeçalho para
header('HTTP/1.1 503 Service Temporarily Unavailable');
o que estava acima não funcionou para mim.fonte