在上一篇文章《 免插件仅代码实现WordPress评论回复邮件 》中Jeff 提供了三种回复邮件样式类型。在你将需要的类型实现后,如果去测试一下,你会发现邮件的样式不怎么好看,甚至是丑陋的。如果你的网站访客收到如此千篇一律的单调邮件,他是否有兴趣再去你的网站上踩踩呢?有没有方法可以美化一下呢?
注意到《 免插件仅代码实现WordPress评论回复邮件 》的诸如 <div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111;">的代码,相信你知道这些是css代码,在html中的css代码。本文所说的美化即是在这里下功夫。
在开始之前,让Jeff给出一个示例(你可以给我评论,如果我回复,你就会收到这类邮件):
您在 [DeveWork.com] 上的留言有回复啦!
评论人, 您好!
您在《WordPress评论回复邮件样式美化教程》的留言:
hello
Jeff 给你的回复:
这个是演示效果
你可以点击查看完整内容
欢迎再度光临DeveWork.com
(此邮件由系统自动发出, 请勿回复。)
本站目前使用的评论回复邮件就与上面的差不多。下面直接给出我使用的代码吧,你可以个性化一下,这里就不延伸了。
跟《 免插件仅代码实现WordPress评论回复邮件 》一样,在funtions.php文件的末尾最后一个 ?>输入的:
function comment_mail_notify($comment_id) { $admin_email = get_bloginfo ('admin_email'); $comment = get_comment($comment_id); $comment_author_email = trim($comment->comment_author_email); $parent_id = $comment->comment_parent ? $comment->comment_parent : ''; $to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : ''; $spam_confirmed = $comment->comment_approved; if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email)) { $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); $subject = '您在 [' . get_option("blogname") . '] 的留言有了新回复'; $message = ' <div style="background-color:#fff; border:1px solid #666666; color:#111; -moz-border-radius:8px; -webkit-border-radius:8px; -khtml-border-radius:8px; border-radius:8px; font-size:12px; width:702px; margin:0 auto; margin-top:10px;"> <div style="background:#666666; width:100%; height:60px; color:white; -moz-border-radius:6px 6px 0 0; -webkit-border-radius:6px 6px 0 0; -khtml-border-radius:6px 6px 0 0; border-radius:6px 6px 0 0; "> <span style="height:60px; line-height:60px; margin-left:30px; font-size:12px;"> 您在<a style="text-decoration:none; color:#ff0;font-weight:600;"> [' . get_option("blogname") . '] </a>上的留言有回复啦!</span></div> <div style="width:90%; margin:0 auto"> <p>' . trim(get_comment($parent_id)->comment_author) . ', 您好!</p> <p>您在《' . get_the_title($comment->comment_post_ID) . '》的留言:<br /> <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">'. trim(get_comment($parent_id)->comment_content) . '</p> <p>' . trim($comment->comment_author) . ' 给你的回复:<br /> <p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">'. trim($comment->comment_content) . '</p> <p>你可以点击<a href="' . htmlspecialchars(get_comment_link($parent_id, array('type' => 'comment'))) . '">查看完整内容</a></p> <p>欢迎再度光临<a href="' . get_option('home') . '">' . get_option('blogname') . '</a></p> <p>(此邮件由系统自动发出, 请勿回复。)</p> </div></div>'; $from = "From: \"" . get_option('blogname') . "\" <$wp_email>"; $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n"; wp_mail( $to, $subject, $message, $headers ); } } add_action('comment_post', 'comment_mail_notify'); |
我的网站设置了,还是收不到邮件。
主机问题吧,不支持mail函数
那还有什么解决办法吗?
不支持也没什么,一个插件WP-Mail-SMTP也能解决WordPress 无法发送邮件的问题(但是要更改一下/wp-include/class-smtp.php中的代码)。
学习了,等折腾好wordpress自带评论的样式后再折腾这个回复邮件样式
添加后出现:Fatal error: Cannot redeclare comment_mail_notify() (previously declared in /home/tupjrivf/public_html/wp-content/themes/HotNewspro/functions.php:446) in /home/tupjrivf/public_html/wp-content/themes/HotNewspro/includes/functions/notify.php on line 36
貌似是函数其冲突了
呃。。。那怎么办?是funtions.php文件里的吗?
看看是什么样式