WordPress修改更新文章后通知评论过那篇文章的用户

投稿   龙笑天下  2017-05-05 07:26:49  328 人阅读  20 条评论

投放广告联系   诚邀合作伙伴   赞助我们   本站公告   轻松一刻

有时,有些文章出于某些原因,需要进行内容修改或代码更新等,如果是一些重要的更新修改,想让评论过的人知道此文章有修改更新,怎么办呢?!嘿嘿嘿,此文正是你所需要的!

WordPress修改更新文章后通知评论过那篇文章的用户 WordPress 第1张

功能描述: 在修改编辑文章的页面添加一个选项,只有勾选才会邮件通知,这样就不会每次修改频繁打扰到网友。

具体做法:将以下代码放到 functions.php 中:

  1. /**
  2.  * Wordpress修改更新文章后通知评论过那篇文章的用户 - 龙笑天下
  3.  * http://www.ilxtx.com/notify-comment-authors-when-the-post-is-updated.html
  4.  */
  5. //修改更新文章时邮件通知评论用户
  6. add_action( 'submitpost_box', 'lxtx_fo_submit_box');
  7. function lxtx_fo_submit_box( ){
  8. echo '<div id="fo_side-sortables" class="meta-box-sortables ui-sortable">';
  9. echo '<div id="fo_submit_box" class="postbox ">';
  10. echo '<div class="handlediv" title="点击以切换"><br></div>';
  11. echo '<h3 class="hndle"><span>邮件通知</span></h3>';
  12. echo '<div class="inside"><div class="submitbox">';
  13. echo ' <div style="padding: 10px 10px 0;text-align: left;"><label class="selectit" title="慎用此功能,重要文章才勾选嘛,以免引起读者反感哈"><input type="checkbox" name="FO_emaill_report_user" value="true" title="勾选此项,将邮件通知本文所有评论者"/>邮通知本文所有评论者</label></div>';
  14. echo '</div></div>';
  15. echo '</div>';
  16. echo '</div>';
  17. }
  18. //开始
  19. add_action( 'publish_post', 'lxtx_fo_emaill_report_users' );
  20. function lxtx_fo_emaill_report_users($post_ID)
  21. {
  22. //如果未勾选保存,不进行任何操作
  23. if($_POST['FO_emaill_report_user'] != 'true'){
  24. return;
  25. }
  26. //修订版本不通知,以免滥用
  27. if( wp_is_post_revision($post_ID) ){
  28. return;
  29. }
  30. //获取wp数据操作类
  31. global $wpdb,$post;
  32. // 读数据库,获取文章的所有用户的email并且不重复
  33. $emailauthor != '你自己的邮箱';
  34. $wp_user_emails = $wpdb->get_results("SELECT DISTINCT comment_author, comment_author_email FROM $wpdb->comments WHERE TRIM(comment_author_email) IS NOT NULL AND TRIM(comment_author_email) != '' AND TRIM(comment_author_email) != '$emailauthor' AND comment_post_ID = $post->ID");
  35. // 获取博客名称
  36. $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
  37. // 获取博客URL
  38. $blogurl = get_bloginfo("siteurl");
  39. //文章链接
  40. $post_link = get_permalink($post_ID);
  41. //文章标题$post -> post_title
  42. $post_title = strip_tags($_POST['post_title']);
  43. //文章内容$post->post_content
  44. $post_content = strip_tags($_POST['post_content']);
  45. //文章摘要
  46. $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,0}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,200}).*/s','\1',$post_content).'......';
  47. //邮件头,以免乱码
  48. $message_headers = "Content-Type: text/html; charset=\"utf-8\"\n";
  49. // 邮件标题
  50. $subject = '您曾经来访过的《'.$post_title.'》文章更新通知。';
  51. foreach ( $wp_user_emails as $wp_user_email )
  52. {
  53. // 邮件内容
  54. $message = '
  55. <div style="MARGIN-RIGHT: auto; MARGIN-LEFT: auto;">
  56. <strong style="line-height: 1.5; font-family:Microsoft YaHei;">
  57. 亲爱的'.$wp_user_email->comment_author.':
  58. </strong>
  59. <p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
  60. 您曾经来访过的《'.$post_title.'》有更新,博主觉得有必要通知您,希望不会骚扰到您。
  61. </p>
  62. <p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
  63. 文章标题:<a title="'.$post_title.'" href="'.$post_link.'" target="_top">'.$post_title.'</a>
  64. <br/>
  65. 文章摘要:'.$output.'
  66. </p>
  67. <p style="FONT-SIZE: 14px; PADDING-TOP: 6px">
  68. 您可以点击链接
  69. <a href="'.$blogurl.'" style="line-height: 1.5;">'.$blogname.'</a>
  70. >
  71. <a title="'.$post_title.'" href="'.$post_link.'" target="_top">'.$post_title.'</a>
  72. 详细查看
  73. </p>
  74. <p style="font-size: 14px; padding-top: 6px; text-align: left;">
  75. <span style="line-height: 1.5; color: rgb(153, 153, 153);">
  76. 来自:
  77. </span>
  78. <a href="'.$blogurl.'" style="line-height: 1.5;">'.$blogname.'</a>
  79. </p>
  80. <div style="font-size: 12px; border-top-color: rgb(204, 204, 204); border-top-width: 1px; border-top-style: solid; height: 35px; width: 500px; color: rgb(102, 102, 102); line-height: 35px; background-color: rgb(245, 245, 245);">
  81. 该邮件为系统发送邮件,请勿直接回复!如有打扰,请向博主留言反映。灰常感谢您的阅读!
  82. </div>
  83. </div>';
  84. wp_mail($wp_user_email->comment_author_email, $subject$message$message_headers);
  85. }
  86. }

---- 代码取自郑永博客

效果图如下:

WordPress修改更新文章后通知评论过那篇文章的用户 WordPress 第2张

友情提示

慎用此功能!

当然,邮件内容可以参考『纯代码实现WordPress评论回复邮件提醒功能及回复邮件样式美化教程』这篇文章来美化一下哦。

如果文章对你有帮助,请赞赏支持作者继续创作!

历史上的今天:

文章标签: ,   ,   ,  
原文地址:http://www.ilxtx.com/notify-comment-authors-when-the-post-is-updated.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 龙笑天下 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress虚拟主机和VPS服务器推荐

 发表评论


  1. 闲鱼
    闲鱼 【状元】 @回复

    这个虽然不常用,还是有用的

  2. 金榜台博客
    金榜台博客 【状元】 @回复

    这个是很不错

  3. Koolight
    Koolight 【尚书】 @回复

    这个很有效果的。

  4. 春熙路
    春熙路 【尚书】 @回复

    这样是不是很麻烦啊

  5. 我要网赚
    我要网赚 【状元】 @回复

    每天不来感觉少点啥东西?

  6. 博客导航目录
    博客导航目录 【秀才】 @回复

    很实用,收藏

  7. 言曌博客
    言曌博客 【秀才】 @回复

    这个功能确实要慎用啊,邮件太多,对用户体验非常不好

    • boke112导航
      boke112导航【村长】2017-05-05 17:05  回复

      @言曌博客是的,不过他有开关,你觉得很重要的文章再勾选它就行了

  8. 灵异世界
    灵异世界 【进士】 @回复

    博主慢慢的现在朝技术大牛稳步迈进姚。

    • boke112导航
      boke112导航【村长】2017-05-05 17:06  回复

      @灵异世界[偷笑] 这个是投稿文章,是文章作者成技术大牛才对

      • 灵异世界
        灵异世界 【进士】2017-05-05 17:21  回复

        @boke112导航坚持很重要,我是2015年知道你坚持做这个的。

  9. 演绎法
    演绎法 【进士】 @回复

    每人评论?

  10. 蓝海战略
    蓝海战略 【举人】 @回复

    厉害了,我的哥

  11. 靠谱学生兼职网
    靠谱学生兼职网 【尚书】 @回复

    看起来代码好多,头痛一点哦。

  12. Mr.Li
    Mr.Li 【举人】 @回复

    技术性的东西,我表示一律看不懂 [思考]

  13. 星空游戏
    星空游戏 【举人】 @回复

    今天来得比较早

  14. 金榜台博客
    金榜台博客 【状元】 @回复

    来看看是什么东西

  15. SEO自学网
    SEO自学网 【秀才】 @回复

    今天没有抢到沙发!烦躁,我的站被人CC攻击一早上

  16. 明月学习笔记Blog
    明月学习笔记Blog 【进士】 @回复

    嘿嘿,我就在用呢!不错!

  17. 演绎法
    演绎法 【进士】 @回复

    我把通知插件都撤了。