WordPress免插件评论邮件通知代码

WordPress评论回复邮件通知,最大好处就是可以增加访问者对博客的粘性。

一、有勾选栏, 由访客决定是否要回应邮件通知

  1.  comment_mail_notify() {
  2.    = \’1\’; 
  3.    = get_bloginfo (\’admin_email\’); 
  4.    = get_comment();
  5.    = trim(->comment_author_email);
  6.    = ->comment_parent ? ->comment_parent : ;
  7.    ;
  8.    (->query() == )
  9.     ->query();
  10.    (( !=  && isset([\’comment_mail_notify\’])) || ( ==  &&  == \’1\’))
  11.     ->query();
  12.    =  ? get_comment()->comment_mail_notify : \’0\’;
  13.    = ->comment_approved;
  14.    ( !=  &&  != \’spam\’ &&  == \’1\’) {
  15.      = \’no-reply@\’ . preg_replace(\’#^www\\.#\’, , ([\’SERVER_NAME\’])); 
  16.      = trim(get_comment()->comment_author_email);
  17.      = \’您在 [\’ . get_option() . \’] 的留言有了回應\’;
  18.      = \’
  19.     <div style=>
  20.       <p>\’ . trim(get_comment()->comment_author) . \’, 您好!</p>
  21.       <p>您曾在《\’ . get_the_title(->comment_post_ID) . \’》的留言:<br />\’
  22.        . trim(get_comment()->comment_content) . \'</p>
  23.       <p>\’ . trim(->comment_author) . \’ 給您的回應:<br />\’
  24.        . trim(->comment_content) . \'<br /></p>
  25.       <p>您可以點擊 <a href=>查看回應完整內容</a></p>
  26.       <p>歡迎再度光臨 <a href=>\’ . get_option(\’blogname\’) . \'</a></p>
  27.       <p>(此郵件由系統自動發出, 請勿回覆.)</p>
  28.     </div>\’;
  29.      =  . get_option(\’blogname\’) . ;
  30.      =  . get_option(\’blog_charset\’) . ;
  31.     wp_mail( , , ,  );
  32.     
  33.   }
  34. }
  35. add_action(\’comment_post\’, \’comment_mail_notify\’);
  36.  add_checkbox() {
  37.    \'<input type= name= id= value= checked= style= /><label =>有人回覆時郵件通知我</label>\’;
  38. }
  39. add_action(\’comment_form\’, \’add_checkbox\’);

二、无勾选栏, 由管理者决定在什麽条件下发邮件

  1.  comment_mail_notify() {
  2.    = get_bloginfo (\’admin_email\’); 
  3.    = get_comment();
  4.    = trim(->comment_author_email);
  5.    = ->comment_parent ? ->comment_parent : ;
  6.    =  ? trim(get_comment()->comment_author_email) : ;
  7.    = ->comment_approved;
  8.    (( != ) && ( != \’spam\’) && ( != ) && ( == )) {
  9.     
  10.      = \’no-reply@\’ . preg_replace(\’#^www\\.#\’, , ([\’SERVER_NAME\’])); 
  11.      = \’您在 [\’ . get_option() . \’] 的留言有了回應\’;
  12.      = \’
  13.     <div style=>
  14.       <p>\’ . trim(get_comment()->comment_author) . \’, 您好!</p>
  15.       <p>您曾在《\’ . get_the_title(->comment_post_ID) . \’》的留言:<br />\’
  16.        . trim(get_comment()->comment_content) . \'</p>
  17.       <p>\’ . trim(->comment_author) . \’ 給您的回應:<br />\’
  18.        . trim(->comment_content) . \'<br /></p>
  19.       <p>您可以點擊 <a href=>查看回應完整內容</a></p>
  20.       <p>歡迎再度光臨 <a href=>\’ . get_option(\’blogname\’) . \'</a></p>
  21.       <p>(此郵件由系統自動發出, 請勿回覆.)</p>
  22.     </div>\’;
  23.      =  . get_option(\’blogname\’) . ;
  24.      =  . get_option(\’blog_charset\’) . ;
  25.     wp_mail( , , ,  );
  26.     
  27.   }
  28. }
  29. add_action(\’comment_post\’, \’comment_mail_notify\’);

三、所有回覆都发邮件

  1.  comment_mail_notify() {
  2.    = get_comment();
  3.    = ->comment_parent ? ->comment_parent : ;
  4.    = ->comment_approved;
  5.    (( != ) && ( != \’spam\’)) {
  6.      = \’no-reply@\’ . preg_replace(\’#^www\\.#\’, , ([\’SERVER_NAME\’])); 
  7.      = trim(get_comment()->comment_author_email);
  8.      = \’您在 [\’ . get_option() . \’] 的留言有了回應\’;
  9.      = \’
  10.     <div style=>
  11.       <p>\’ . trim(get_comment()->comment_author) . \’, 您好!</p>
  12.       <p>您曾在《\’ . get_the_title(->comment_post_ID) . \’》的留言:<br />\’
  13.        . trim(get_comment()->comment_content) . \'</p>
  14.       <p>\’ . trim(->comment_author) . \’ 給您的回應:<br />\’
  15.        . trim(->comment_content) . \'<br /></p>
  16.       <p>您可以點擊 <a href=>查看回應完整內容</a></p>
  17.       <p>歡迎再度光臨 <a href=>\’ . get_option(\’blogname\’) . \'</a></p>
  18.       <p>(此郵件由系統自動發出, 請勿回覆.)</p>
  19.     </div>\’;
  20.      =  . get_option(\’blogname\’) . ;
  21.      =  . get_option(\’blog_charset\’) . ;
  22.     wp_mail( , , ,  );
  23.     
  24.   }
  25. }
  26. add_action(\’comment_post\’, \’comment_mail_notify\’);

使用方法:添加到在主题的function.php中

这个代码在评论分页的 get_comment_link() 有个 bug。

对使用 comments 和 trackbacks/pingbacks 分离的情况才会出现,没分离的没有影响.
当直接调用 get_comment_link() 因为没经过 wp_list_comments(‘type=comment’) 函数,它会以所有的评论作为分页对象. 所以 trackbacks/pingbacks 数量多的时候会让 cpage 多算了, 本来是 cpage=7 会成了 cpage=8, 所以点击邮件里的“查看回应完整内容会找不到正确评论页面”.

— 修正方式 —-

将以上的:
get_comment_link($parent_id)

改为:
get_comment_link($parent_id, array(\’type\’ => \’comment\’))
加入的参数是让它选取 comment 数量计算就好.
评论样式有使用 comments 和 trackbacks/pingbacks 分离的童鞋,请进行修改,没用到的就不用改了。

    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞0分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容