Você quer colocar a seção de administração do seu WordPress em modo de manutenção sem afetar o site? Embora provavelmente exista um plugin para isso, criamos um pequeno trecho de código que você pode usar para ativar o modo de manutenção apenas para administradores no WordPress.
Instruções:
Tudo o que você precisa fazer é adicionar este código ao arquivo functions.php do seu tema ou a um plugin específico do site:
function admin_maintenace_mode() {
global $current_user;
get_currentuserinfo();
if($current_user->user_login != 'ADMIN_NAME') { ?>
<style> .updated{margin:30px !important;} </style><?
wp_die('<div id="message" class="updated"><p><b>Maintenance mode:</b> We are currently making updates. Everything will be online shortly.</p></div>');
}
}
add_action('admin_head', 'admin_maintenace_mode');
Não se esqueça de alterar o ADMIN_NAME no código acima para o nome de usuário da sua conta de administrador do WordPress.
Observação: Se esta é a sua primeira vez adicionando snippets de código no WordPress, consulte nosso guia sobre como adicionar snippets de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste trecho de código, considere conferir nossos outros artigos no site, como: Mais de 50 melhores temas responsivos para WordPress e Como criar um formulário de registro de usuário personalizado no WordPress.
Obrigado Debjit Saha pelo ótimo trecho!
Recebo o seguinte erro quando o colo no meu plugin.
2020/04/29 13:08:35 [error] 1496#1496: *8 FastCGI sent in stderr: “PHP message: PHP ParseError: syntax error, unexpected end of file in /my/project/path/wp-content/plugins/a-plugin/a-plugin.php on line 55
Depois de alterar o trecho para o seguinte, funcionou sem problemas.
function admin_maintenace_mode() { global $current_user; get_currentuserinfo(); if($current_user->user_login != ‘ADMIN_NAME’) { .updated{margin:30px !important;} wp_die('Modo de manutenção: Estamos fazendo atualizações. Tudo estará online em breve.'); } } add_action(‘admin_head’, ‘admin_maintenace_mode’);
Atenciosamente,
Michael Hochleitner
Isso deveria ter sido baseado em função de usuário, então teria sido mais utilizável.
Você pode verificar o valor de $current_user->user_level neste caso. Confira este trecho aqui: https://www.isitwp.com/redirect-user-after-login/
Obrigado Kevin. Estou em uma situação semelhante à do squareCandy. Não quero que as pessoas modifiquem seus sites enquanto eu os migro para minha empresa de hospedagem web.
Legal – obrigado.
Isso funcionou para mim – estou fazendo a transição entre servidores e não queria que os usuários editassem seus sites entre o momento em que comecei a copiar tudo e quando fiz a mudança para o novo servidor.