X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Оповещение по электронной почте при ошибке 404 WordPress

Приклад
  • 2024-10-15
  • 4767 переглядів

  • Дизайн та розробка сайту

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

В этом уроке я покажу скрипт, который будет отправлять администратору сайта на WordPress письмо, которое сообщит, что пользователь попал на страницу 404.

Отправка письса 404

Такая вещь полезная для seo оптимизации. Все знают, что мертвые ссылки, это не очень хорошо. Искать в ручную такие страницы не очень весело, а вот когда поиск автоматически происходит и Вам на почту приходят адреса, так повеселее.:)

Данный скрипт я нашел в интернете, но он был в два раза больше и содержал кучу лишних, по моему мнению строк. К тому же, его сделал человек не с рунета. Все комментарии и текст письма был на английском. Я переделал немного и русифицировал с добавлением кодировки - utf-8.

Скрипт полностью автоматический и универсальный, его не нужно настраивать для работы. Адрес куда отправлять письмо, он берет тот, что Вы указали в настройках в админ части - Настройки - Общие - Адрес e-mail.

Готовый скрипт работает так, что фиксирует пользователя, который попал на страницу 404. После чего сразу отправляется письмо администратору. В письме указан получатель, отправитель, тема письма и сообщение.

В сообщении указывается время, когда посетитель попал на страницу с ошибкой, ссылка этой самой страницы, и сайт от куда он пришел. По последнему, если сайт определить не удалось, то выведется сообщение - неизвестно(например когда пользователь перешел по сохраненной закладе). Выглядит это примерно так:

Письмо об ошибке

Чтобы осуществить отправку, нужно сделать следующее. В папке Вашей темы найти файл 404.php и в самый верх добавьте код представленный ниже. Если у вас нет файла 404.php, то узнайте как его создать в этой статье - Как сделать страницу 404 для WordPress

Готовый код:

<?php 
// Статус
header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");
// Откуда пришли
if (isset($_SERVER['HTTP_REFERER'])) {
     $referer = clean($_SERVER['HTTP_REFERER']);
} else {
     $referer = "неизвестно";
}
// url запроса
if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) {
     $request = clean('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
} else {
     $request = "неизвестно";
}
// Время
$time = clean(date("d M Y H:i", time()));
// обработка
function clean($string) {
     $string = rtrim($string); 
     $string = ltrim($string); 
     $string = htmlentities($string, ENT_QUOTES); 
     $string = str_replace("\n", "<br>", $string);

     if (get_magic_quotes_gpc()) {
          $string = stripslashes($string);
     } 
     return $string;
}
$email = get_bloginfo('admin_email');
$from = "From:" . $email;
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n"; 
$header = "404 Ошибка на сайте";
$message = 
	 "Посетитель Вашего сайта попал на несуществующую страницу \n" .
     "Время: "                          . $time    . "\n" . 
     "Ссылка 404 страницы: "            . $request . "\n" . 
     "От куда пришел пользователь: "    . $referer . "\n" ;

mail($email, $header , $message, $headers, $from);
?>

Если Вы хоть немного разбираетесь в PHP, то поймете структуру и в случаи надобности как-то измените под себя, если это нужно. Также если нужно можно менять текст.

Хоть почта берется администратора, если нужно, Вы можете изменить ее. Для этого нужно заменить строку:

$email = get_bloginfo('admin_email');

На эту:

$email = "Ваша_почта@mail.com";

Теперь все готово. Чтобы проверить, попробуйте ввести адрес своего сайта потом слэш - / - и цифры или буквы наугад, после чего, обновить страницу. Например - ваш_сайт.com/jkhkkjkjhkkjkhk2121..

Дополнение. Установил себе и заметил еще одну полезную штуку. У меня есть статьи с примерами. Это ссылки на страницы где показана анимация, структура и тд, в общем пример чего-то. Так вот, если я там, случайно указал путь к картинки которой нет, или подключил например файл, а его в папке с примером нет, то когда кто-то попадет на эту страницу, он увидит все как надо, но вот мне приходит письмо, что подключенный файл не найден. Также, если Вы в теме, или записи где-то что-то подключите, укажете путь, а этого больше не будет, тоже придет письмо. То есть, запись посетитель увидит, но например без картинки, которая лежала на другом сайте. Вы узнаете сразу, что такой картинки нет и сможете быстро устранить проблему. Вот такой вот он оказался полезный. Лично мне понравилось.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 2, в среднем: 5 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078