延续之前的两篇文章《WordPress评论邮件回复美化》跟《让Windows服务器上的WordPress实现评论邮件通知功能》,为了进一步给回复邮件正文美化排版跟丰富内容,今天花了不少时间研究贺昌兄跟Adoo兄的代码,终于实现了在邮件中插入评论者跟被评论者头像以及最近文章列表等内容,特记录下来,以备不时之需。
介于本人能力有限,一时半会儿找不到评论邮件调用的函数入口,索性继续使用”Comment Reply Notification”插件实现评论邮件回复功能。为了进一步美化跟丰富邮件内容,我们需要修改”Comment Reply Notification”插件的源代码。在网站跟目录下通过路径“wp-content/plugins/comment-reply-notification”找到comment-reply-notification.php文件,打开并搜索“$mail_message = str_replace(‘[postname]’, $post->post_title, $mail_message);”,大概位于225行左右,另起一行插入如下代码:
$newpost = wp_get_archives('type=postbypost&limit=10&format=custom&echo=0&after=<br />&before= '); $mail_message = str_replace('[newpost]', $newpost, $mail_message); $pc_picture = '<img src="http://www.gravatar.com/avatar/'.md5(strtolower(trim(get_comment($parent_)->comment_author_email))) . '" width="39" height="39" />'; $mail_message = str_replace('[pc_picture]', $pc_picture, $mail_message); $cc_picture = '<img src="http://www.gravatar.com/avatar/'.md5( strtolower( trim(get_comment($id)->comment_author_email) ) ) . '" width="39" height="39" />'; $mail_message = str_replace('[cc_picture]', $cc_picture, $mail_message); $specialchars = htmlspecialchars(get_permalink($comment->comment_post_ID)); $mail_message = str_replace('[posturl]', $specialchars, $mail_message);
很显然,第1条语句用来获取博客上最近10篇日志列表,”type=postbypost”一篇挨着一篇地显示文章列表;“limit=10”显示十篇文章,你可以更改limit指定的参数来显示不同数量的最近日志列表;“after=<br />”表示在每篇文章链接后面插入“<br />”;“before= ”表示在每篇文章链接前面插入6个空格符。
第2、4、6、8条语句用来将newpost变量指定的字符串内的[newpost]、[pc_picture]、[cc_picture]、'[posturl]等关键词替换为newpost、pc_picture、cc_picture、posturl等变量内存储的字符串。
第3条语句用来生成评论回复者的头像地址,其中调用了PHP中的md5函数将邮件地址加密,防止邮件地址被暴露到互联网上。同理,第5条语句用来生成评论被回复者的头像地址。
第7条语句用来获取文章的固定链接地址。
在”Comment Reply Notification”插件的Wordpress管理后台,在“编辑通知内容 ”栏输入如下正文格式代码后点击“更新选项”按钮保存配置即可。
<div style="background-color:#eef2fa; width:600px; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px; border-radius:5px;"> <p><b>[pc_author]</b>[pc_picture], 您好!</p> <p>您于 [pc_date] 在 <a href="[blogurl]">[blogname]</a> 的 <b>《[postname]》</b> 上发表的评论有了新回复,赶快围观吧^_^<br />这是您的评论:<br /><div style="background:#EFEFEF;border: 1px dashed #CCC;padding:5px;margin:0 0 0 25px;border-radius: 10px 10px;">[pc_content]</div></p> <p><b>[cc_author]</b>[cc_picture] 给您的新回复是:<br /><div style="background:#EFEFEF;border: 1px dashed #CCC;padding:5px;margin:0 0 0 25px;border-radius: 10px 10px;"> [cc_content]<br /></div></p> <p>您可以点击以下链接查看更多有关评论:<br /><div style="background:#EFEFEF;border: 1px dashed #CCC;padding:5px;margin:0 0 0 25px;border-radius: 10px 10px;"> <a href="[posturl]">[posturl]</a></div></p> <p><b>[blogname]</b> 的最新文章欢迎围观:<br /><div style="background:#EFEFEF;border: 1px dashed #CCC;padding:5px;margin:0 0 0 25px;border-radius: 10px 10px;">[newpost]</div></p> <p><b>CppLive</b> 在这里感谢您光临 <a href="[blogurl]">[blogname]</a>,也谢谢您的支持<br /> 期待您再次光临 <b>[blogname]</b> [blogurl]<br /> (此邮件由系统自动发出, 请勿回复.)</p> <p style="float:right;">But如果您想更深入地与博主交流,欢迎回复^_^</p> </div>
最后发一条评论测试效果如下,实现在WordPress邮件中显示头像跟最近文章:
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。
10篇最新文章有点多哦,我当时想设置5篇,最终感觉3篇应该正合适,我是通过自己互访和他人互访的风格中考虑才设置3篇的~
可以美化下头像那一栏的CSS格式,设置成和评论列表中显示的一样应该很不过,O(∩_∩)O哈哈~
嘿嘿,谢谢贺昌兄的建议,已经改成3篇了,头像大小也该小了些。