Cuando WordPress actualiza algún plugin, theme o el core, crea un archivo temporal en el directorio raíz de la instalación: .maintenance con el objeto de evitar que, durante la actualización, se produzcan problemas a los usuarios que acceden y evitar también problemas con otros procesos del sistema. Una vez que la actualización a finalizado, el sistema borra dicho archivo y todo vuelve a la normalidad.
Cuando intentamos acceder a nuestro sitio web, se comprueba que no exista este archivo de lo contrario se nos mostrará en pantalla el siguiente mensaje:
No disponible temporalmente por un mantenimiento programado. Vuelve a comprobarlo en unos minutos.
A veces nos ocurre que por error, antes de que haya terminado, por ejemplo, la actualización de un plugin hagamos escape o cambiemos de pantalla de administración y en ese caso, la actualización se ve cancelada y, al no llegar al final el archivo .maintenance no es borrado. A partir de ese momento ya no podremos acceder a nuestro sitio web y nos encontraremos con el fatídico mensaje.
Ante este caso, lo primero es no perder la calma. WordPress nos conoce bien y no castigará solo unos minutos 10 minutos, momento en el que el propio sistema borrará dicho archivo. No obstante si, por las circunstancias del momento o del sitio web, no podemos esperar tanto tiempo, bastará con que accedamos por FTP a nuestro servidor y borremos .maintenance manualmente.
Como ves un problema que nos puede hacer perder la calma, tiene una solución bastante simple, aunque, eso sí, el susto inicial no hay quien nos lo quite.
Fuentes
También puedes ver este vídeo de Enrique J. Ros, también puedes obtener información valiosa de estos hilos del Stack Exchange de WordPress:
- https://wordpress.stackexchange.com/questions/190588/is-maintenance-file-still-valid-for-putting-wp-in-maintenance-mode
- https://wordpress.stackexchange.com/questions/211159/under-which-circumstances-is-the-maintenance-file-not-deleted
Si quieres ahondar un poco más, aquí te dejo el script dentro de load.php que se encarga de chequear si existe o no el archivo .maintenance.
<?php /** * Check if maintenance mode is enabled. * * Checks for a file in the WordPress root directory named ".maintenance". * This file will contain the variable $upgrading, set to the time the file * was created. If the file was created less than 10 minutes ago, WordPress * is in maintenance mode. * * @since 5.5.0 * * @global int $upgrading The Unix timestamp marking when upgrading WordPress began. * * @return bool True if maintenance mode is enabled, false otherwise. */ function wp_is_maintenance_mode() { global $upgrading; if ( ! file_exists( ABSPATH . '.maintenance' ) || wp_installing() ) { return false; } require ABSPATH . '.maintenance'; // If the $upgrading timestamp is older than 10 minutes, consider maintenance over. if ( ( time() - $upgrading ) >= 10 * MINUTE_IN_SECONDS ) { return false; } /** * Filters whether to enable maintenance mode. * * This filter runs before it can be used by plugins. It is designed for * non-web runtimes. If this filter returns true, maintenance mode will be * active and the request will end. If false, the request will be allowed to * continue processing even if maintenance mode should be active. * * @since 4.6.0 * * @param bool $enable_checks Whether to enable maintenance mode. Default true. * @param int $upgrading The timestamp set in the .maintenance file. */ if ( ! apply_filters( 'enable_maintenance_mode', true, $upgrading ) ) { return false; } return true; }