ارسال ایمیل برای صفحات ۴۰۴ وردپرس

مطمئنا شما نیز با صفحه ۴۰۴ در وردپرس آشنایی دارید، همان صفحه‌ای که بسیاری از شما میانه خوبی با آن ندارید و دوست دارید تا سایت شما به هیچ وجه چنین صفحه‌ای را نداشته باشد! حال چه خوب باشد و یا چه بد، در هر حال این صفحه لازم و ضروری است.

در این مقاله از دکتر وردپرس قصد دارم تا به معرفی قطعه کدی بپردازم که با استفاده از آن قادر خواهید بود تا وقتی کاربری که به سایت شما مراجعه کرده و با صفحه ۴۰۴ مواجه می‌شوند، یک ایمیل حاوی آدرس ان صفحه برای شما ارسال شود تا در کوتاهترین زمان ممکن ان را بررسی کنید.

ارسال ایمیل برای صفحات ۴۰۴ وردپرس

ارسال ایمیل برای صفحات 404 وردپرس
ارسال ایمیل برای صفحات ۴۰۴ وردپرس

برای شروع کار ابتدا کدهای زیر را در فایل مربوط به صفحه ۴۰۴ قالب خود قرار دهید، این فایل با نام ۴۰۴٫php در قالب وردپرس وجود دارد.

<?php // https://doctorwp.com/email-404-error-pages
// 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('http://' . $_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);
$string = str_replace("\n", "<br>", $string);
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return $string;
}
$message =
"TIME: " . $time . "\n" .
"*404: " . $request . "\n" .
"SITE: " . $site . "\n" .
"THEME: " . $theme . "\n" .
"REFERRER: " . $referer . "\n" .
"QUERY STRING: " . $string . "\n" .
"REMOTE ADDRESS: " . $address . "\n" .
"REMOTE IDENTITY: " . $remote . "\n" .
"USER AGENT: " . $agent . "\n\n\n";
mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email");
?>

همانطور که در خط ۱۹ این کد می‌بینید به صورت پیشفرض ایمیل مورد نظر برای ایمیل ثبت شده در سایت ارسال خواهد شد، اما اگر قصد دارید تا این گزارشات به ایمیل خاصی ارسال شوید کافی است تا به جای آن از قطعه کد زیر استفاده کنید.

$email =’your-email@mail.com’;

و به جای your-email@mail.com ایمیل خود را قرار داده و تغییرات را ذخیره کنید.

حال از این پس هرگاه کاربری وارد صفحه ای که در سایت شما وجود ندارد شود، گزارش آن برای شما ارسال خواهد شد.

امتیاز شما برای این مقاله
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.