У вашому положенні functions.php
:
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();
}
});
Цей код буде перевіряти константу (див. Наступну точку), і якщо користувач не ввійшов у систему, завантажте файл, створений у пункті №1, та вийдіть.
Якщо ви хочете дозволити лише користувачів із певними можливостями, використовуйте current_user_can('capability_to_allow')
замість is_user_logged_in()
. Дивіться Codex для отримання додаткової інформації.
Можливо, ви можете додати maintenance.php
посилання на сторінку входу; таким чином користувач, який не входить у систему, може натискати на нього без необхідності вручну вводити URL-адресу входу в адресний рядок.
Якщо ви використовуєте тему, розроблену третьою стороною, використовуйте дочірню тему ; таким чином ви зможете безпечно оновити тему, не втрачаючи змін.