Продолжим Практику 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;, вот после неё и вставляем.
Обновляем файл, и если у кого установлен плагин кеширования, очищаем кеш. Теперь если выйти из режима администрирования, и зайти на сайт по адресу, как посетитель, то вам откроется такая картинка.
Вот так, ничего лишнего, и всё понятно. Делайте всё что Вам нужно, после чего удалите код, обновите файл, очистите кеш, и сайт будет снова открыт.
Желаю творческих успехов.
Перемена
Если муж ушёл налево, самое главное с ним там не столкнуться.
Шорткод WordPress < < < В раздел > > > Как вставить блок во всех записях после заголовка
Доброго утра, дня и вечера! Код уже использовал. Всё хорошо работает. Благодарен.
Спасибо за код. Для быстрого закрытия то своих демо проектов то что надо.
Алексей. Выражение «идеологически не правильно» ничего ни даёт посетителю, тем более новичку, а мой сайт именно для них. Пожалуйста разложите эту идеологию так, чтоб стало ясно — да, действительно, так лучше так не делать, а то произойдёт то-то и то-то.
И ещё. Не помню точно, но что-то было насчёт не активных плагинов на сайте. Сейчас нет времени гуглить, но это вопрос.
Хотя ваша идея насчёт самописных плагинов мне очень нравится, и я обязательно приму её на вооружение. И буду очень признателен, и не только я скорее всего, если вы осветите момент безопасности таких плагинов.
Доброго времени суток!
Без обид, но считаю идеологически неправильным вносить изменения в файл темы functions.php.
1. Создаем отдельный плагин, например disabled-enabled-site.php
2. Если нужно закрыть сайт — активируем плагин, иначе дезактивирум.
3. Перед тем как активировать плагин, ручками: админка WP -> плагины -> Disabled|Enabled site -> Изменить -> пишем нужное время