En tu functions.php
puesto:
add_action( 'wp_loaded', function() {
global $pagenow;
if(
defined( 'IN_MAINTENANCE' )
&& IN_MAINTENANCE
&& $pagenow !== 'wp-login.php'
&& ! is_user_logged_in()
) {
header( 'HTTP/1.1 Service Unavailable', true, 503 );
header( 'Content-Type: text/html; charset=utf-8' );
header( 'Retry-After: 3600' );
if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) {
require_once( WP_CONTENT_DIR . '/maintenance.php' );
}
die();
}
});
Este código verificará una constante (vea el siguiente punto) y si el usuario no está conectado, cargue el archivo creado en el punto # 1 y salga.
Si desea permitir solo usuarios con capacidades específicas, use en current_user_can('capability_to_allow')
lugar de is_user_logged_in()
. Ver Codex para más información.
Tal vez pueda agregar a maintenance.php
un enlace a la página de inicio de sesión; de esta manera, un usuario no registrado puede hacer clic en él sin tener que ingresar manualmente la URL de inicio de sesión en la barra de direcciones.
Si está utilizando un tema desarrollado por un tercero, use un tema secundario ; De esta forma, podrá actualizar de forma segura el tema sin perder los cambios.