当前位置:首页 > CMS教程 > WordPress > 列表

WordPress站点出现404错误时邮件通知管理员

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-18 14:45:08 浏览: 评论:0 

一个比较好玩的功能就是当我们网站出现了错误时就邮箱通知管理员了,将下面的代码添加到你所用的WordPress主题的 404.php 文件的顶端即可.

如果你的主机支持mail()函数或者设置了SMTP发送邮件,总之就是能够发送邮件就行,一会去查看你设置的WordPress站点的管理员邮箱,你就会发现404通知邮件,可能在垃圾箱哦.

实例代码如下:

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

否则我们按下面方法来操作,代码如下:

  1. <?php // WP 404 ALERTS 
  2.  
  3. // set status 
  4. header("HTTP/1.1 404 Not Found"); 
  5. header("Status: 404 Not Found"); 
  6.  
  7. // site info 
  8. $blog  = get_bloginfo('name'); 
  9. $site  = get_bloginfo('url') . '/'; 
  10. $email = get_bloginfo('admin_email'); 
  11.  
  12. // theme info 
  13. if (!emptyempty($_COOKIE["nkthemeswitch" . COOKIEHASH])) { 
  14.      $theme = clean($_COOKIE["nkthemeswitch" . COOKIEHASH]); 
  15. } else { 
  16.      $theme_data = wp_get_theme(); 
  17.      $theme = clean($theme_data->Name); 
  18. } 
  19.  
  20. // referrer 
  21. if (isset($_SERVER['HTTP_REFERER'])) { 
  22.      $referer = clean($_SERVER['HTTP_REFERER']); 
  23. } else { 
  24.      $referer = "undefined"; 
  25. } 
  26. // request URI 
  27. if (isset($_SERVER['REQUEST_URI']) && isset($_SERVER["HTTP_HOST"])) { 
  28.      $request = clean('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); 
  29. } else { 
  30.      $request = "undefined"; 
  31. } 
  32. // query string 
  33. if (isset($_SERVER['QUERY_STRING'])) { 
  34.      $string = clean($_SERVER['QUERY_STRING']); 
  35. } else { 
  36.      $string = "undefined"; 
  37. } 
  38. // IP address 
  39. if (isset($_SERVER['REMOTE_ADDR'])) { 
  40.      $address = clean($_SERVER['REMOTE_ADDR']); 
  41. } else { 
  42.      $address = "undefined"; 
  43. } 
  44. // user agent 
  45. if (isset($_SERVER['HTTP_USER_AGENT'])) { 
  46.      $agent = clean($_SERVER['HTTP_USER_AGENT']); 
  47. } else { 
  48.      $agent = "undefined"; 
  49. } 
  50. // identity 
  51. if (isset($_SERVER['REMOTE_IDENT'])) { 
  52.      $remote = clean($_SERVER['REMOTE_IDENT']); 
  53. } else { 
  54.      $remote = "undefined"; 
  55. } 
  56. // log time 
  57. $time = clean(date("F jS Y, h:ia", time())); 
  58.  
  59. // sanitize 
  60. function clean($string) { 
  61.      $string = rtrim($string);  
  62.      $string = ltrim($string);  
  63.      $string = htmlentities($string, ENT_QUOTES);  
  64.      $string = str_replace("n", "<br>", $string); 
  65.  
  66.      if (get_magic_quotes_gpc()) { 
  67.           $string = stripslashes($string); 
  68.      }  
  69.      return $string; 
  70. } 
  71.  
  72. $message =  
  73.      "TIME: "            . $time    . "n" .  
  74.      "*404: "            . $request . "n" .  
  75.      "SITE: "            . $site    . "n" .  
  76.      "THEME: "           . $theme   . "n" .  
  77.      "REFERRER: "        . $referer . "n" .  
  78.      "QUERY STRING: "    . $string  . "n" .  
  79.      "REMOTE ADDRESS: "  . $address . "n" .  
  80.      "REMOTE IDENTITY: " . $remote  . "n" .  
  81.      "USER AGENT: "      . $agent   . "nnn"; 
  82.  
  83. mail($email, "404 Alert: " . $blog . " [" . $theme . "]", $message, "From: $email");  
  84. ?> 

Tags: WordPress 404错误 管理员

分享到: