Когато WordPress сайтът е в режим на профилактика (maintenance mode) посетителите ще имат достъп до само една специална страница от него. Докато администраторът на сайта може да достъпва целия сайт и администрацията му.
Режимът на профилактика се използва, когато искате да извършите промени по сайта и не искате посетителите му да попаднат на нещо нередно или съобщение за грешка.
Например при ъпдейт на системата, плъгините, темата или отстраняването на възникнал проблем с функционирането на сайта.
Поставянето на WordPress сайта в режим на профилактика може да се извърши по няколко начина - с плъгин или чрез използване на PHP код/ htaccess директиви.
Плъгин WP Maintenance Mode
WP Maintenance Mode е един от многото плъгини, които ще намерите в официалната директория с плъгини за WordPress. С него можете да активирате режим на профилактика за сайта.
Плъгинът има допълнителни опции като редактиране на съобщението на страницата, добавяне на допълнителни компоненти в нея като контактна форма, форма за абонамент, индикатори за обратно броене до пускането на сайта и други.
Някои от опциите може да Ви помогнат да задържите посетителите и да запазите техния интерес в сайта, като използвате например формата за абонамент.
След като инсталирате плъгина WP Maintenance Mode, можете първо да извършите настройките на външния вид на страницата, която ще се показва на всички посетители (които не са логнати в сайта).
По подразбиране администраторът на сайта ще има достъп до администрацията и до front-end частта на сайта. Можете да изберете и други типове потребители, които ще имат достъп до панела и сайта.
След извършване на промени по дадена страница в настройките, записвайте промените със Save settings.
Когато приключите с всички настройки за режима на профилактика, може да го активирате през настройките - General » Status, като изберете Activated и запишете промените.
За да видите страницата за профилактика, трябва да отворите сайта в друг браузър или да излезете от профила Ви.
След като приключите с промените по сайта, можете да деактивирате режима на профилактика през същите настройки на плъгина, като изберете - Status » Deactivated. Ако използвате кешираща технология/плъгин в сайта, изчистете кеша.
Активиране на режима през темата (с добавяне на PHP код)
Режимът на профилактика може да се активира чрез редакция на файловете на темата.
Във файла functions.php с функционалности на темата може да се постави следния код:
function maintenance_mode() {
if ( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
wp_die('Maintenance.', 503);
}
}
add_action('get_header', 'maintenance_mode');
Можете да промените текста на съобщението, като редактирате съдържанието на реда wp_die('Maintenance.');.
Например можете да поставите HTML тагове и стил към текста:
wp_die('<h1 style="color:red">The website is in Maintenance.</h1><br />We will be back on-line very soon. Check back later!' , 503);
Статус кодът, който ще се подава към ботовете на търсачките, при достъп до сайта, е 503 (Service Unavailable). Този статус код индикира на ботовете, че сайтът в момента е недостъпен и трябва да опитат да го обходят отново след време.
За да деактивирате режима за профилактика, можете да премахнете поставения код във файла на темата или да закоментирате реда с “add_action”.
Ограничаване на достъпа по IP и пренасочване към определена страница
Чрез пренаписващи правила в .htaccess файла можете да ограничите достъпа до сайта за всички, освен Вашия IP адрес и да ги пренасочите към предварително създадена друга страница.
В .htaccess файла на сайта може да поставите следните редове:
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^12\.345\.67\.89
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ https://mysupersite.com/maintenance.html [R=302,L]
12\.345\.67\.89 - заменете цифрите с тези на Вашия IP адрес;
За да добавите още разрешени IP адреси, добавяйте по един нов ред:
RewriteCond %{REMOTE_ADDR} !^12\.456\.78\.9
Статус кодът, който ще се подава към ботовете на търсачките е 302 (Temporary), който означава временно пренасочване.
Предварително трябва да създадете файла maintenance.html. В него може да има HTML код за страницата.
За да деактивирате режима на профилактика, можете да премахнете тези редове от htaccess файла или да ги закоментирате.
Вградената функционалност на WordPress за режим на профилактика
Вградената функционалност за поставяне на сайта в режим на профилактика се активира и деактивира автоматично при обновяване на системата, плъгините и темата. Тази функционалност не предлага възможност за настройка през администрацията на WordPress.
Тази вградена функционалност използва файла .maintenance, поставящ се автоматично и временно в директорията на сайта. В случай че сте извършили ъпдейт, но сайтът все още показва страницата за профилактика, проверете за наличието на този файл и ако го намерите в директорията може да го премахнете.
Възможно е да активирате режима за профилактика ръчно, като ще е нужно да създадете файла .maintenance в директорията на сайта.
В този файл трябва да се постави следното съдържание:
<?php $upgrading = time(); ?>
Съобщението по подразбиране, което се показва в този режим, може да се променя, за да се подобри стила и визията му. За целта ще е нужен файл maintenance.php, поставен в wp-content директорията.
Можете да поставите в него PHP и HTML код. При активиране на режима, WordPress ще провери за наличието на този файл, ако не е наличен ще показва стандартното съобщение.
Когато сайтът е в този режим, той подава съобщение 503 (Sevice Unavailable). Този статус код се възприема от ботовете на търсачките като временна недостъпност на сайта, и ще опитат да обходят сайта отново след време.