<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>邮件插件 &#8211; 就爱分享</title>
	<atom:link href="https://www.9host.org/tag/%e9%82%ae%e4%bb%b6%e6%8f%92%e4%bb%b6/feed" rel="self" type="application/rss+xml" />
	<link>https://www.9host.org</link>
	<description>最爱分享各种资源的中文独立博客</description>
	<lastBuildDate>Sat, 27 Apr 2019 12:32:08 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>WordPress评论回复邮件通知 原生纯净代码解决方案</title>
		<link>https://www.9host.org/571.html</link>
					<comments>https://www.9host.org/571.html#comments</comments>
		
		<dc:creator><![CDATA[河马大叔]]></dc:creator>
		<pubDate>Sat, 22 Jun 2013 00:30:46 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[评论提醒]]></category>
		<category><![CDATA[评论插件]]></category>
		<category><![CDATA[邮件插件]]></category>
		<category><![CDATA[邮件通知]]></category>
		<guid isPermaLink="false">http://www.9host.org/?p=571</guid>

					<description><![CDATA[大叔在运营就爱主机的初期发现一个问题，就是有网友在&#8230;]]></description>
										<content:encoded><![CDATA[<p>大叔在运营就爱主机的初期发现一个问题，就是有网友在qq问我为何她在我博客评论之后，我回复了她的那条评论后她却未收到邮件通知，她对此表示十分困惑并且要求大叔尽快增加此功能，大叔觉得她提出的意见非常好，因为大叔是这么想的：</p>
<blockquote><p>因为当用户对你博客的文章感兴趣或有疑问时，很多都会在评论区给该文章做一些相关的评论。希望得到博客住或其它用户的共鸣或疑难解答。但有些问题不是很快就有人回复，所以时间长了，当初评论的用户也就忘记的这个问题，同时也忘记了你的博客。<br />
所以想要更好的留住用户，最重要的当然是要及时的回复用户的评论。但有时因为各种各样的原因，不能及时的回复读者，时间长了，当我们再回复或解答这个问题时，这个用户不一定会再次访问我们的博客。这样就不知道你的回复，也就防碍了博主和用户或用户和用户之间的交流。</p></blockquote>
<p>接下来就让河马大叔详细介绍一下如何在不安装插件的情况下，直接使用原生纯净代码就能实现WordPress评论回复邮件通知的解决方案。</p>
<div class="su-note"  style="border-color:#e5e5c6;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:#FFFFE0;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;">
注意事项：<br />
1、需要你的主机支持mail()函数。<br />
2、一定不要使用记事本编辑php文件，否则很可能出现意想不到的错误，推荐使用EditPlus，Dreamweaver等。<br />
3、如果对于修改代码不是很有把握，请预先备份好原来的文件。<br />
4、复制本文的代码，如果是全角符号，请自行改为半角符号，切记。<br />
5、向Willin Kan大师致敬，中文wordpress圈很多人在使用他的评论回复邮件提醒通知代码。<br />
</div></div>
<p>实现wordpress评论邮件通知的修改代码方法：登陆博客后台，点击“外观”菜单下的“编辑”选项进入主题编辑界面，再选择functions.php文件，实现评论回复发送邮件通知的功能，就在之间添加以下函数：</p>
<h2>代码1：所有回复都发送邮件通知</h2>
<p>默认所有填写了邮箱的评论都将发邮件提醒评论人，没有任何勾选设置。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">/* comment_mail_notify v1.0 by willin kan. (所有回复都发邮件) */
function comment_mail_notify($comment_id) {
  $comment = get_comment($comment_id);
  $parent_id = $comment-&gt;comment_parent ? $comment-&gt;comment_parent : '';
  $spam_confirmed = $comment-&gt;comment_approved;
  if (($parent_id != '') &amp;&amp; ($spam_confirmed != 'spam')) {
    $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); //e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)-&gt;comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
<div style="background-color: #eef2fa; border: 1px solid #d8e3e8; color: #111; padding: 0 15px; -moz-border-radius: 5px; -webkit-border-radius: 5px; -khtml-border-radius: 5px;">
' . trim(get_comment($parent_id)-&gt;comment_author) . ', 您好!
您曾在《' . get_the_title($comment-&gt;comment_post_ID) . '》的留言:
' . trim(get_comment($parent_id)-&gt;comment_content) . '
' . trim($comment-&gt;comment_author) . ' 给您的回复:
' . trim($comment-&gt;comment_content) . '
您可以点击 查看回复完整內容
欢迎再度光临 ' . get_option('blogname') . '
(此邮件由系统自动发送，请勿回复.)
</div>
'; $from = "From: \"" . get_option('blogname') . "\" &lt;$wp_email&gt;"; $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'); // -- END ----------------------------------------
</pre>
<h2>代码2：让访客自己选择是否邮件通知</h2>
<p>在评论框下方显示一个勾选框，让评论人自己决定是否接收邮件通知。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">/* 开始*/
function comment_mail_notify($comment_id) {
  $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
  $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment-&gt;comment_author_email);
  $parent_id = $comment-&gt;comment_parent ? $comment-&gt;comment_parent : '';
  global $wpdb;
  if ($wpdb-&gt;query("Describe {$wpdb-&gt;comments} comment_mail_notify") == '')
    $wpdb-&gt;query("ALTER TABLE {$wpdb-&gt;comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  if (($comment_author_email != $admin_email &amp;&amp; isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email &amp;&amp; $admin_notify == '1'))
    $wpdb-&gt;query("UPDATE {$wpdb-&gt;comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
  $notify = $parent_id ? get_comment($parent_id)-&gt;comment_mail_notify : '0';
  $spam_confirmed = $comment-&gt;comment_approved;
  if ($parent_id != '' &amp;&amp; $spam_confirmed != 'spam' &amp;&amp; $notify == '1') {
    $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)-&gt;comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
    &lt;div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px;"&gt;
      &lt;p&gt;' . trim(get_comment($parent_id)-&gt;comment_author) . ', 您好!&lt;/p&gt;
      &lt;p&gt;您曾在《' . get_the_title($comment-&gt;comment_post_ID) . '》的留言:&lt;br /&gt;'
       . trim(get_comment($parent_id)-&gt;comment_content) . '&lt;/p&gt;
      &lt;p&gt;' . trim($comment-&gt;comment_author) . ' 给您的回复:&lt;br /&gt;'
       . trim($comment-&gt;comment_content) . '&lt;br /&gt;&lt;/p&gt;
      &lt;p&gt;您可以点击查看回复的完整內容&lt;/p&gt;
      &lt;p&gt;还要再度光临 ' . get_option('blogname') . '&lt;/p&gt;
      &lt;p&gt;(此邮件由系统自动发送，请勿回复.)&lt;/p&gt;
    &lt;/div&gt;';
         $from = "From: \"" . get_option('blogname') . "\" &lt;$wp_email&gt;";
         $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');
 
/* 自动加勾选栏 */
function add_checkbox() {
  echo '&lt;input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" style="margin-left:20px;" /&gt;&lt;label for="comment_mail_notify"&gt;有人回复时邮件通知我&lt;/label&gt;';
}
add_action('comment_form', 'add_checkbox');</pre>
<p>&nbsp;</p>
<h2>代码3：让博客管理员决定什么情况下发邮件</h2>
<p>你可以根据自己的需求，配置下面代码（看代码注释），决定什么情况才发邮件。</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">/* comment_mail_notify v1.0 by willin kan. (无勾选栏) */
function comment_mail_notify($comment_id) {
  $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment-&gt;comment_author_email);
  $parent_id = $comment-&gt;comment_parent ? $comment-&gt;comment_parent : '';
  $to = $parent_id ? trim(get_comment($parent_id)-&gt;comment_author_email) : '';
  $spam_confirmed = $comment-&gt;comment_approved;
  if (($parent_id != '') &amp;&amp; ($spam_confirmed != 'spam') &amp;&amp; ($to != $admin_email) &amp;&amp; ($comment_author_email == $admin_email)) {
    /* 上面的判断式,决定发出邮件的必要条件:
    ($parent_id != '') &amp;&amp; ($spam_confirmed != 'spam'): 回复的, 而且不是 spam 才可发, 必需!!
    ($to != $admin_email) : 不发给 admin.
    ($comment_author_email == $admin_email) : 只有 admin 的回复才可发.
    可视个人需修改上面的条件.
    */
    $wp_email = 'no-reply@' . preg_replace('#^www.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';
    $message = '
    &lt;div style="background-color:#eef2fa; border:1px solid #d8e3e8; color:#111; padding:0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px;"&gt;
      &lt;p&gt;' . trim(get_comment($parent_id)-&gt;comment_author) . ', 您好!&lt;/p&gt;
      &lt;p&gt;您曾在《' . get_the_title($comment-&gt;comment_post_ID) . '》的留言:&lt;br /&gt;'
       . trim(get_comment($parent_id)-&gt;comment_content) . '&lt;/p&gt;
      &lt;p&gt;' . trim($comment-&gt;comment_author) . ' 给您的回复:&lt;br /&gt;'
       . trim($comment-&gt;comment_content) . '&lt;br /&gt;&lt;/p&gt;
      &lt;p&gt;您可以点击 查看回复的完整內容&lt;/p&gt;
      &lt;p&gt;还要再度光临 ' . get_option('blogname') . '&lt;/p&gt;
      &lt;p&gt;(此邮件由系统自动发送，请勿回复.)&lt;/p&gt;
    &lt;/div&gt;';
         $from = "From: \"" . get_option('blogname') . "\" &lt;$wp_email&gt;";
         $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');
// -- END ----------------------------------------</pre>
<h2>代码4：河马大叔正在用的</h2>
<p>黑白底色，微软雅黑字体，是不是很好看呢？<br />
<img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-587" src="https://www.9host.org/wp-content/uploads/2013/06/email-screen.jpg" alt="email-screen" width="601" height="390" srcset="https://www.9host.org/wp-content/uploads/2013/06/email-screen.jpg 601w, https://www.9host.org/wp-content/uploads/2013/06/email-screen-220x143.jpg 220w" sizes="(max-width: 601px) 100vw, 601px" /></p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">/* WordPress非插件实现评论回复邮件提醒通知 让访客自己选择是否邮件通知  开始*/
function comment_mail_notify($comment_id) {
  $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
  $admin_email = get_bloginfo ('admin_email'); // $admin_email 可改为你指定的 e-mail.
  $comment = get_comment($comment_id);
  $comment_author_email = trim($comment-&amp;gt;comment_author_email);
  $parent_id = $comment-&amp;gt;comment_parent ? $comment-&amp;gt;comment_parent : '';
  global $wpdb;
  if ($wpdb-&amp;gt;query("Describe {$wpdb-&amp;gt;comments} comment_mail_notify") == '')
    $wpdb-&amp;gt;query("ALTER TABLE {$wpdb-&amp;gt;comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
  if (($comment_author_email != $admin_email &amp;amp;&amp;amp; isset($_POST['comment_mail_notify'])) || ($comment_author_email == $admin_email &amp;amp;&amp;amp; $admin_notify == '1'))
    $wpdb-&amp;gt;query("UPDATE {$wpdb-&amp;gt;comments} SET comment_mail_notify='1' WHERE comment_ID='$comment_id'");
  $notify = $parent_id ? get_comment($parent_id)-&amp;gt;comment_mail_notify : '0';
  $spam_confirmed = $comment-&amp;gt;comment_approved;
  if ($parent_id != '' &amp;amp;&amp;amp; $spam_confirmed != 'spam' &amp;amp;&amp;amp; $notify == '1') {
    $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 发出点, no-reply 可改为可用的 e-mail.
    $to = trim(get_comment($parent_id)-&amp;gt;comment_author_email);
    $subject = '您在 [' . get_option("blogname") . '] 的评论有了回复';
    $message = '&lt;/pre&gt;
&lt;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; font-family: 微软雅黑, Arial;"&gt;
&lt;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;"&gt;&lt;span style="height: 60px; line-height: 60px; margin-left: 30px; font-size: 12px;"&gt;您在&lt;a style="text-decoration: none; color: #00bbff; font-weight: 600;" href="' . get_option('home') . '"&gt;' . get_option('blogname') . '&lt;/a&gt;博客上的评论有回复啦！&lt;/span&gt;&lt;/div&gt;
&lt;div style="width: 90%; margin: 0 auto;"&gt;
' . trim(get_comment($parent_id)-&amp;gt;comment_author) . ', 您好!
&amp;nbsp;
您曾在 [' . get_option("blogname") . '] 的文章《' . get_the_title($comment-&amp;gt;comment_post_ID) . '》 上发表评论:
&lt;p style="background-color: #eee; border: 1px solid #DDD; padding: 20px; margin: 15px 0;"&gt;' . nl2br(get_comment($parent_id)-&amp;gt;comment_content) . '&lt;/p&gt;
' . trim($comment-&amp;gt;comment_author) . ' 给您的回复如下:
&lt;p style="background-color: #eee; border: 1px solid #DDD; padding: 20px; margin: 15px 0;"&gt;' . nl2br($comment-&amp;gt;comment_content) . '&lt;/p&gt;
您可以点击 &lt;a style="text-decoration: none; color: #00bbff;" href="' . htmlspecialchars(get_comment_link($parent_id)) . '"&gt;查看回复的完整內容&lt;/a&gt;
欢迎再次光临 &lt;a style="text-decoration: none; color: #00bbff;" href="' . get_option('home') . '"&gt;' . get_option('blogname') . '&lt;/a&gt;
(此邮件由系统自动发出, 请勿回复.)
&lt;/div&gt;
&lt;/div&gt;
'; $from = "From: \"" . get_option('blogname') . "\" &amp;lt;$wp_email&amp;gt;"; $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n"; wp_mail( $to, $subject, $message, $headers ); //echo 'mail to ', $to, '
' , $subject, $message; // for testing } } add_action('comment_post', 'comment_mail_notify'); /* 自动加勾选栏 */ function add_checkbox() { echo '&lt;input id="comment_mail_notify" style="margin-left: 20px;" checked="checked" name="comment_mail_notify" type="checkbox" value="comment_mail_notify" /&gt;&lt;label for="comment_mail_notify"&gt;有人回复时邮件通知我&lt;/label&gt;'; } add_action('comment_form', 'add_checkbox');</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.9host.org/571.html/feed</wfw:commentRss>
			<slash:comments>21</slash:comments>
		
		
			</item>
	</channel>
</rss>
