¿Quieres poner la sección de administración de tu WordPress en modo de mantenimiento sin afectar el sitio web? Si bien probablemente haya un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para habilitar el modo de mantenimiento solo para la administración en WordPress.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a 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 olvides cambiar el NOMBRE_ADMIN en el código anterior por el nombre de usuario de tu cuenta de administrador de WordPress.
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo agregar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: Los 50+ mejores temas de WordPress responsivos y Cómo crear un formulario de registro de usuario personalizado en WordPress.
¡Gracias Debjit Saha por el excelente fragmento!
Recibo el siguiente error cuando lo pego en mi 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
Después de cambiar el fragmento a lo siguiente, funcionó sin 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 mantenimiento: Actualmente estamos realizando actualizaciones. Todo estará en línea en breve.'); } } add_action(‘admin_head’, ‘admin_maintenace_mode’);
Saludos cordiales, Michael Hochleitner
Esto debería haberse hecho basado en roles de usuario, entonces habría sido más usable
Podrías verificar el valor de $current_user->user_level en este caso. Echa un vistazo a este fragmento aquí: https://www.isitwp.com/redirect-user-after-login/
Gracias Kevin. Estoy en una situación similar a la de squarecandy. No quiero que la gente modifique su sitio mientras los estoy migrando a mi empresa de alojamiento web.
Genial, gracias. Esto me funcionó. Estoy haciendo una transición entre servidores y no quería que los usuarios editaran sus sitios entre el momento en que comencé a copiar todo y cuando hice el cambio al nuevo servidor.