今天我的博客评论的时候,出现了一个大问题:游客评论后会出现fatel error:我必须先说一下我的情况:我的博客开启了wordpress多站点功能(站群);支持很多二级域名;我主站评论的时候并未出现任何异常,但是我一个二级域名下面的网站评论的时候就会出现以下代码:
Fatal error: Uncaught phpmailerException: Invalid address: (setFrom) [email protected],www.fujieace.com,*.fujieace.com in /fujieace/nginxssl/html/wp-includes/class-phpmailer.php:1023 Stack trace: #0 /fujieace/nginxssl/html/wp-includes/pluggable.php(352): PHPMailer->setFrom('[email protected]', 'WordPress', false) #1 /fujieace/nginxssl/html/wp-includes/pluggable.php(1691): wp_mail('[email protected]', '[\xE5\xA4\xA7\xE8\xBF\x9ESEO] \xE8\xAF\xB7...', '\xE5\x9C\xA8\xE3\x80\x8A\xE4\xB8\xBA\xE4\xBB\x80\xE4\xB9\x88...', Array) #2 /fujieace/nginxssl/html/wp-includes/comment.php(2007): wp_notify_moderator(14) #3 /fujieace/nginxssl/html/wp-includes/class-wp-hook.php(300): wp_new_comment_notify_moderator(14) #4 /fujieace/nginxssl/html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array) #5 /fujieace/nginxssl/html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #6 /fujieace/nginxssl/html/wp-includes/comment.php(1981): do_action('comment_post', 14, 0, Array) #7 /fujieace/nginxssl/html/wp-content/themes in /fujieace/nginxssl/html/wp-includes/class-phpmailer.php on line 1023
以上代码什么意思我就不说了,可自行翻译,如果你看不懂也没关系;博主是搞PHP的,虽然说网上有说PHP可以屏蔽错误显示,博主的环境本身设置的就是“display_errors = off"; 结果还出现这样的提示,就表示设置已经没有用了;
解决 wordpress Fatal error: Uncaught phpmailerException: Invalid address 办法:
1: 进入 /fujieace/nginxssl/html/wp-includes/ 目录
cd /fujieace/nginxssl/html/wp-includes/ ;
2:编辑class-phpmailer.php 文件 第 1023行
vim class-phpmailer.php;
3:修改代码(屏蔽掉此行代码)
将:
throw new phpmailerException($error_message);
修改为
// throw new phpmailerException($error_message);
4:保存并退出
这样你再去评论,我相信无论是主域名还是开启wordpress多站的二级域名评论都不会再报这样的错误了;
此方法仅限于wordpress程序;如果你是其它的服务器程序出错,我需要看源代码才可以研究出来;此错误我也是用了很多种方法,最开始是不想屏蔽它的,因为毕竟这是wordpress核心程序,或许下次更新后,又会恢复过来,我又要重新去修改,这样也太麻烦了;一直想找一个其它的方法即好使用,又不影响其它的,结果方法没有找着,只好用这个最笨的办法喽!如果你有好的方便,希望你能提供发表到评论中,让更多的wordpress爱好者学习;