Во время разработки / тех.обслуживания / тестинга нужно вставить код в functions
function rezim_obsluzivania() {
if ( !current_user_can( 'administrator' ) ) {
wp_die('Сайт находится в режиме обслуживания, производятся обновления. Зайдите пожалуйста позже..');
}
}
add_action('get_header', 'rezim_obsluzivania');
После этого сайт смогут видеть только зашедшие под учеткой администратора пользователи.
Альтернативный вариант, прямо в шаблон HEADER
<?php $user = wp_get_current_user();
$allowed_roles = array('administrator');
if( array_intersect($allowed_roles, $user->roles ) ) {
} else {
echo '
<style>.maintenance {
position: fixed;
top: 0;
height: 100%;
left: 0;
width: 100%;
z-index: 9999999;
background: #000;
background: linear-gradient(45deg, #7a9c59, #185abc);
color: #fff;
display: flex;
justify-content: center;
align-items: center;
font-size: 2rem;
padding: 0 500px;
}</style>
<div class="maintenance">Сайт находится на техническом обслуживании. Приносим извинения за доставленные неудобства. Работа сайта возобновится в ближайшие несколько часов.</div>
';
} ?>
Индивидуализация
Доработал функцию: добавил элементы индивидуализации и связал с функцией customizer, из него подгружается логотип и телефон.
//Закрываем блог на ремонт
function rezim_obsluzivania() {
if ( !current_user_can( 'administrator' ) ) {
wp_die('
<style>
html {
background-color: #444;
background-image:url('.get_theme_mod( 'true_logo' ).');
background-repeat: no-repeat;
background-position: 50% 150%;
}
</style>
<p style="text-align:center;">Сайт находится на реконструкции. Работа сайта возобновится в ближайшее время.<br>
Приносим извинения за неудобства.<br><br>
По вопросам сотрудничества, звоните: <strong>' .get_theme_mod( 'true_phone' ). '</strong></p>
');
}
}
add_action('get_header', 'rezim_obsluzivania');
Редактирование шаблона
Если мы редактируем шаблон, но не хотим чтобы пользователи это видели, мы можем сделать проверку и выводить для авторизованных пользователей (для себя) другой вариант верстки. После удачного редактирования убираем условие и старый вариант верстки.
<?php if (is_user_logged_in()) : ?>
новый вариант верстки
<?php else: // если посетитель не авторизован ?>
выводим рабочую верстку
<?php endif; ?>
Плагины по теме
Решить данную задачу можно с помощью плагина Maintenance Mode (40 000 установок). В нем нет ничего лишнего. В интерфейсе можно настроить страницу заглушки.
Есть еще один популярный плагин — WP Maintenance Mode (500 000 установок), лично его не использовал.