دریافت هشدار ایمیل پس از بروز خطای ۴۰۴ در وردپرس(بدون نصب افزونه)

هر چه یک وب سایت بزرگ و بزرگتر می شود به همان اندازه هم باید هزینه زمانی و مالی بیشتری صرف آن کنید، از اطلاعات تان بکاپ بگیرید، افزونه ها و محتوا را آپدیت کنید، حواستان به مسائل امنیتی باشد و …

اما در این بین می توانید بعضی از وظایف را اتومات کنید، مثل بکاپ گیری خودکار از وب سایت تان در یک روز و ساعت مشخص، پیشنهاد می کنیم مطلب آموزشی بکاپ گیری خودکار از وردپرس و انتقال به دراپ باکس(Dropbox) را مطالعه فرمائید.

از دیگر سو ممکن است اتفاقاتی در وب سایت تان رخ دهد که دیر باخبر شوید یا حتی از وجود آنها مطلع نشوید، مثل خطای ۴۰۴(صفحه مورد نظر یافت نشد) که می تواند بر روی تجربه کاربری و سئو وب سایت تان تاثیر منفی بگذارد.

باید توجه داشته باشید یکی از وظایف مهم شما پیدا کردن خطاهای ۴۰۴ است، برای این منظور می توانید از ابزارهایی مثل Broken Link Check یا افزونه Broken Link Checker استفاده نمائید. اما می توانید اینکار را خودکارسازی کنید تا پس از وقوع خطای ۴۰۴ یک ایمیل هشدار حاوی جزئیات خطا به آدرس پست الکترونیکی شما ارسال گردد تا به سرعت از وجود آن مطلع شوید.

برای این منظور باید کارهای زیر را انجام دهید:

ایجاد صفحه ۴۰۴

همانطور که می دانید قالب وردپرس از مجموعه ای فایل به نام “فایل قالب” تشکیل شده است(تصویر زیر)، این فایل ها در شرایط خاصی فراخوانی شده و وظیفه خود را انجام می دهند، یکی از این موارد فایل ۴۰۴ است که در صورت بروز هر گونه خطای ۴۰۴ فراخوانی و به کاربر نشان داده می شود. اگر با فایل های قالب آشنایی ندارید بهتر است مقاله آشنایی با مفهوم Template Hierarchy در وردپرس را مطالعه فرمائید.

ابتدا یک فایل به نام ۴۰۴ با پسوند php در قالب وب سایت تان ایجاد کنید.

پوشه قالب های وردپرس

 

سپس کدهای زیر را در آن وارد کنید، اگر این فایل در قالب وب سایت تان وجود دارد این کدها را در ابتدای آن قرار دهید.

<?php

// 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" .
    "*۴۰۴: " . $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";

wp_mail( $email, "404 Alert", $message, "From: $email" );

?>

 

از این پس در صورت بروز خطای ۴۰۴ یک ایمیل اطلاع رسانی به آدرس پست الکترونیکی شما که در بخش “تنظیمات عمومی” پنل مدیریتی وردپرس مشخص کرده اید ارسال می گردد، ممکن است این ایمیل ها را در پوشه Spam دریافت نمائید، حتما آنها را No Spam کنید تا ایمیل های بعدی در داخل Inbox ذخیره شوند.

ارسال خطای 404 به ایمیل در وردپرس

جمع بندی

اگر حوصله سر و کله زدن با قالب وردپرس و اسکریپت هشدار ایمیل را ندارید می توانید از افزونه Redirect, Log and Notify 404 Errors استفاده کنید.

نظرات و سوالات کاربران

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *