¿Quieres poner tu sección de administración de WordPress en modo de mantenimiento sin afectar al sitio web? Si bien es probable que haya un plugin para esto, hemos creado un fragmento de código rápido que puede utilizar para activar el modo de mantenimiento sólo para el administrador en WordPress.
Instrucciones:
Todo lo que tienes que hacer es añadir este código al archivo functions.php de tu tema o en un plugin específico del sitio:
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');
No olvide cambiar el ADMIN_NAME del código anterior por el nombre de usuario de su cuenta de administrador de WordPress.
Nota: Si es la primera vez que añades fragmentos de código en WordPress, consulta nuestra guía sobre cómo añadir correctamente fragmentos de código en WordPress, para no romper accidentalmente tu sitio.
Si te ha gustado este fragmento de código, por favor, echa un vistazo a nuestros otros artículos en el sitio como: 50+ best responsive WordPress themes y cómo crear un formulario de registro de usuario personalizado en WordPress.
Thank you Debjit Saha for the great snippet!
I receive the following error when I paste it in my 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
After changing the snippet to the following it worked without problems.
function admin_maintenace_mode() {
global $current_user;
get_currentuserinfo();
if($current_user->user_login != ‘ADMIN_NAME’) { ?>
.updated{margin:30px !important;} <?php
wp_die('Maintenance mode: We are currently making updates. Everything will be online shortly.’);
}
}
add_action(‘admin_head’, ‘admin_maintenace_mode’);
Best,
Michael Hochleitner
This should have been made user role based then it would have been more usable
You could check the $current_user->user_level value in this case. Check out this snippet here: https://www.isitwp.com/redirect-user-after-login/
Thanks Kevin. I’m in a similar situation as squarecandy. I don’t want people modifying their site while I’m migrating them to my web-hosting company.
Cool – thanks.
This worked for me – I’m transitioning between servers and I didn’t want users editing their sites between when I started to copy everything over and when I made the switch to the new server.