Как изменить сообщение «Ошибка установки соединения с базой данных» на своё в WordPress

Image

Привет, уважаемый посетитель!

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

И в такие моменты заходящие на сайт посетители наблюдают не ожидаемый контент, а короткое сообщение с текстом возникшей ошибки, а именно «Ошибка установки соединения с базой данных».

Сообщение «Ошибка установки соединения с базой данных»

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

Давайте же посмотрим, как исправить положение, заменив данное «сухое» сообщение на своё, в котором разъясняется, что за проблема возникла, что можно сделать. И даже больше – пока открыта страница с ошибкой, браузер сам будет обновлять её, в попытках отобразить необходимый контент. Всё это поможет удержать так важных для сайта посетителей, которые обычно сразу же закрывают вкладку, если видят что-то совсем для себя непонятное.

Отображение страницы с информацией в WordPress при возникновении «Ошибка установки соединения с базой данных»

  1. Первым делом нам понадобится текстовый редактор. Рекомендую бесплатный и очень функциональный Notepad++. Открыв его, создадим в нём новый документ и впишем туда код:
    <?php
        header('HTTP/1.1 503 Service Temporarily Unavailable');
        header('Status: 503 Service Temporarily Unavailable');
        header('Refresh: 4; url='.$_SERVER['REQUEST_URI']);
    ?>
    <!DOCTYPE html>
    <html lang="ru-RU">
    	<head>
    	<meta name="robots" content="noindex,follow" />
    	<meta name="viewport" content="width=device-width" />
    	<meta charset="UTF-8">
    	<title>503 ошибка - Service Unavailable</title>
    <style type="text/css">
    #info {
    		padding: 10px;
    		font-family: Verdana, sans-serif;
    		font-size: 14pt;
    		color: black;
    		margin-top: 60px;
    		text-align: center;
    }
    </style>
    	</head>
    	<body>
    		<div id="info">
    			<h1>Ой, возникла непредвиденная ошибка...</h1>
    			Либо что-то не сработало должным образом у нас, либо сервер не справляется со своими обязанностями (перегружен).<br><br>
    			Попробуйте обновить страницу - есть вероятность, что проблема уйдёт.<br>Если Вы так и продолжаете наблюдать сие сообщение, то напишите об этом<br> <a href="mailto:mail@sitename">mail@sitename</a>.<br><br>
    			Ну а пока проследуйте на главную страницу, вдруг проблема уже исправлена...<br><br>
    			<a href="https://sitename">Проследовать на главную</a><br><br>
    		</div>
    	</body>
    </html>

    Естественно, никто не запрещает его отредактировать так, как необходимо в вашем случае. Можно указать свой текст, добавить стили, изображения и т.п.

    Код в целом простой, однако некоторое пояснение всё же стоит сделать, а именно в части вот этой строчки:

    header('Refresh: 4; url='.$_SERVER['REQUEST_URI']);

    Оная отправляет браузеру команду, что необходимо обновлять страницу каждые 4 секунды. Это позволяет реализовать следующий алгоритм:

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

    если проблема была кратковременной, то не успеет посетитель до конца прочесть сообщение с описанием возникшей ошибки, как перед его глазами отобразится именно то, зачем он и пришёл. Шикарно!

  2. Когда код вписан, необходимо его сохранить в файл. При сохранении ему следует дать имя db-error.php.

    Сохраняем файл с кодом

  3. Теперь останется только его загрузить на сервер\хостинг, дабы он заработал. Разместить файл необходимо в папке, что носит имя wp-content.

    Размещаем файл на хостинге или сервере

  4. Ну вот и всё.

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

Пожертвование сайту WPuse.ru (cбор пожертвований осуществляется через сервис «ЮMoney»)