Gửi email thông báo khi có lỗi 404 cho WordPress

404 là một lỗi thường gặp khi bạn truy cập một trang nhưng trang đó không tồn tại trên máy chủ. Việc theo dõi các trang bị lỗi 404 là việc nên làm vì bạn có thể kịp thời sửa các bài viết/trang có liên kết bị gãy. 404s-700x218 Trong Wordpress đã có sẵn file 404.php để bạn tùy chọn hiển thị trang 404. Và bạn chỉ cần dán đoạn code này vào đầu file 404.php để gửi email thông báo lỗi mỗi khi xuất hiện lỗi 404.

<?php
// WP 404 ALERTS @ https://wp-mix.com/wordpress-404-email-alerts/
// Sửa đổi và bổ sung bởi Infoblogtech.com

add_filter( 'wp_mail_content_type', '_change_email_content_type' );
function _change_email_content_type( $content_type ) {
return 'text/html';
}

// set status
header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");

// site info
$blog  = get_bloginfo('name');
$site  = get_bloginfo('url') . '/';
$email = get_bloginfo('admin_email');

// theme info
if (!empty($_COOKIE["nkthemeswitch" . COOKIEHASH])) {
$theme = clean($_COOKIE["nkthemeswitch" . COOKIEHASH]);
} else {
$theme_data = wp_get_theme();
$theme = clean($theme_data->Name);
}

// referrer
if (isset($_SERVER['HTTP_REFERER'])) {
$referer = clean($_SERVER['HTTP_REFERER']);
} else {
$referer = "undefined";
}
// request URI
if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) {
$request = clean('https://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
} else {
$request = "undefined";
}
// query string
if (isset($_SERVER['QUERY_STRING'])) {
$string = clean($_SERVER['QUERY_STRING']);
} else {
$string = "undefined";
}
// IP address
if (isset($_SERVER['REMOTE_ADDR'])) {
$address = clean($_SERVER['REMOTE_ADDR']);
} else {
$address = "undefined";
}
// user agent
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$agent = clean($_SERVER['HTTP_USER_AGENT']);
} else {
$agent = "undefined";
}
// identity
if (isset($_SERVER['REMOTE_IDENT'])) {
$remote = clean($_SERVER['REMOTE_IDENT']);
} else {
$remote = "undefined";
}
// log time
$time = clean(date("F jS Y, h:ia", time()));

// sanitize
function clean($string) {
$string = rtrim($string);
$string = ltrim($string);
$string = htmlentities($string, ENT_QUOTES);

if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return $string;
}

$message =
"Thời gian: "       . $time    . "<br />" .
"Địa chỉ 404: "     . $request . "<br />" .
"Địa chỉ blog: "    . $site    . "<br />" .
"Giao diện: "       . $theme   . "<br />" .
"REFERRER: "        . $referer . "<br />" .
"QUERY STRING: "    . $string  . "<br />" .
"Địa chỉ IP: "  . $address . "<br />" .
"REMOTE IDENTITY: " . $remote  . "<br />" .
"Thông tin người dùng: " . $agent   . "<br /><br />";

wp_mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email");

?>

Đến đây bạn lưu file 404.php lại là xong.  Mỗi khi có lỗi 404 xảy ra, một email thông báo sẽ được gửi tới địa chỉ mail được cài đặt trong phần Settings > General > E-mail Address. Tiêu đề của thư sẽ có dạng 404 Alert: Tên blog [Tên theme đang dùng]

Rate this post