Как закрыть сайт на обслуживание без плагина

Продолжим Практику PHP

Как на время закрыть сайт для посетителей, чтоб спокойно внести в него изменения, не загружая для этого дополнительного плагина.

Плагины вообще штука не желательная, так как для решения одной конкретной задачи, в них обычно наворочено куча вариантов для реализации, оформления, и подачи этого решения.

Видимо, чтоб угодить самому изощрённому разуму и вкусу, но ведь на всех всё равно не угодишь, а вот подсадить скорость загрузки — это уж как пить дать.

А ведь чтоб закрыть на некоторое время, обычно очень не продолжительное, сайт для посетителей, нужны всего несколько строчек кода.

Причём из админки, на вашем компьютере, он будет так же виден, как и обычно, так что исправляй, переделывай и наблюдай всё что угодно.

Вот нужный код, в котором используется стандартная функция php, к которой привязывается функция действия.

function wp_maintenance_mode(){
    if(!current_user_can('edit_themes') || !is_user_logged_in()){
        wp_die('Maintenance, please come back soon.', 'Maintenance - please come back soon.', array('response' => '503'));
    }
}
add_action('get_header', 'wp_maintenance_mode');

Правда если оставить его в таком виде, то посетитель не владеющий английским будет, скорее всего озадачен, и толком не поймёт, что случилось с сайтом.

Поэтому этот код мы немного подправим, а именно, в третьей строке текст Maintenance, please come back soon, заменим на свой, в котором всё понятно объясним.

Например так:

function wp_maintenance_mode(){
    if(!current_user_can('edit_themes') || !is_user_logged_in()){
        wp_die('Извините, сайт закрыт на обслуживание 07. 07. 2015 18-00. Буду очень рад, если Вы зайдёте через 2 часа', 'Maintenance - please come back soon.', array('response' => '503'));
    }
}
add_action('get_header', 'wp_maintenance_mode');

Теперь посмотрим, как этот код применить.

Заходим Внешний вид — Редактор — Функции темы (functions.php), и вставляем этот код в самом конце, после всех записей.

Обычно последней стоит endif;, вот после неё и вставляем.

Временно закрыть сайт

Обновляем файл, и если у кого установлен плагин кеширования, очищаем кеш. Теперь если выйти из режима администрирования, и зайти на сайт по адресу, как посетитель, то вам откроется такая картинка.

11

Вот так, ничего лишнего, и всё понятно. Делайте всё что Вам нужно, после чего удалите код, обновите файл, очистите кеш, и сайт будет снова открыт.

Желаю творческих успехов.

Перекур

Если муж ушёл налево, самое главное с ним там не столкнуться.

Шорткод WordPress < < < ◊ > > > Как вставить блок во всех записях после заголовка

Запись опубликована в рубрике PHP основы, Новости. Добавьте в закладки постоянную ссылку.

2 комментария на «Как закрыть сайт на обслуживание без плагина»

  1. stariс говорит:

    Алексей. Выражение «идеологически не правильно» ничего ни даёт посетителю, тем более новичку, а мой сайт именно для них. Пожалуйста разложите эту идеологию так, чтоб стало ясно — да, действительно, так лучше так не делать, а то произойдёт то-то и то-то.

    И ещё. Не помню точно, но что-то было насчёт не активных плагинов на сайте. Сейчас нет времени гуглить, но это вопрос.

    Хотя ваша идея насчёт самописных плагинов мне очень нравится, и я обязательно приму её на вооружение. И буду очень признателен, и не только я скорее всего, если вы осветите момент безопасности таких плагинов.

  2. Алексей говорит:

    Доброго времени суток!

    Без обид, но считаю идеологически неправильным вносить изменения в файл темы functions.php.

    1. Создаем отдельный плагин, например disabled-enabled-site.php
    2. Если нужно закрыть сайт — активируем плагин, иначе дезактивирум.
    3. Перед тем как активировать плагин, ручками: админка WP -> плагины -> Disabled|Enabled site -> Изменить -> пишем нужное время

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *