WordPress’te 404 Hataları İçin E-Posta Bildirimi Alın

WordPress kullanan tüm blog yazarları, işi biraz büyüttüklerinde 404 hatalarıyla karşılaşıyorlar. Kaldırılan yazılar, etiketler, değiştirilen kategoriler falan derken bir süre sonra 404 hatası veren bağlantılara sahip olmanız kaçınılmaz oluyor.

404 hatalarını ortadan kaldırmanız SEO açısından da önemli. Bu hataların SEO’ya olumsuz etkisi az, ancak çok sayıda 404 hatası veren bir site Google tarafından pek sevilmeyecektir. Aşağıdaki uygulamadan sonra, sitenizdeki linklerden kaynaklı 404 hatalarının size e-posta olarak bildirilmesini sağlayabilir ve bu hataları daha kolay farkedebilirsiniz. Bildirimler, WordPress yönetim panelinide belirlediğiniz yönetici e-posta adresine gelecektir.

Aşağıdaki kodu tema klasörünüzün içindeki 404.php dosyasının en üstüne ekleyin. Eğer tema klasörünüzün içinde böyle bir dosya yoksa oluşturun ve sonrasında kodu ekleyin.

<?php // WP 404 ALERTS @ http://wp-mix.com/wordpress-404-email-alerts/

// 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");

?>

2 thoughts on “WordPress’te 404 Hataları İçin E-Posta Bildirimi Alın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Eksik sayıyı RAKAMLA yazın: