Mail To Commenter插件使用中的两个问题

2010年8月31日 由 SunQ 留言 »

Mail To Commenter插件在人在岱北博客已经用了好久好久了,但是由于SunQ本身就是一个圡人,并不懂后台,所以之前用的主题都是集成了Mail To Commenter插件的主题,我也就没有做过什么设置的工作,但是最近换了个主题,却发现主题并没有集成Mail To Commenter插件,最直接的问题是,没有回复按钮,让回复评论变得很累。

前一段时间一直都懒,也就没在意这件事情,昨天ryan同学在评论我的博文《可怜之人必有可恨之处》时,建议我加上回复评论按钮,这时我才想起来,这个按钮已经空缺了好久了……

如何加入回复评论的按钮

在Mail To commenter插件的设置界面,有这么一句说明:

自定义按钮显示:
这部分用来设定mailtocommenter_button()函数的输出内容和格式。请在模板文件中插入<?php if(function_exists(‘mailtocommenter_button’)) mailtocommenter_button();?>代码用于生成按钮。

也就是说,只要在想要的地方插入想要出现的地方,就可以在那个地方显示你所设置的回复按钮……

可是,应该在哪里插入这段代码呢?

研究了半天我现在所使用的这个GenkiTheme主题,感觉要么是在single.php中修改,要么是在comments.php中修改。虽然不懂php,英语也是弱智级别,但是简单的词语还是懂一些的。

眼对眼研究了好久,觉得还是应该在comments.php中添加这个代码……

在comments.php中发现了这么一段代码:

<?php foreach ($comments as $comment) : ?>

        <li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
            <?php if (function_exists(‘avatar_display_comments’)){ avatar_display_comments(get_comment_author_email(),’48’,”); } ?>&nbsp;&nbsp;<strong><?php comment_author_link() ?></strong> | <a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date(‘F jS, Y’) ?> <?php _e(‘at’);?> <?php comment_time() ?></a> <?php edit_comment_link(‘e’,”,”); ?>

我想,这应该是评论的上方所出现的评论者信息栏吧,因为我看到了ID、date、time这样的字眼,而且重要的是,如果我用管理员登录后,会在这些信息的后面显示“e”,以用于编辑评论,而最后面那句“<?php edit_comment_link(‘e’,”,”); ?>”不正是编辑评论链接的表述嘛……

这正是我想放上回复评论按钮的地方,于是把那句代码粘贴在这段代码之后,更新文件。到前台刷新了一下,果然,评论按钮出现了!

解决邮件无发件人的现象

由于真的不懂代码,为了让自己的修改更保险一下,用Google搜了一下,虽然没有找到准确的答案,但是却找到了之前发现的一个问题的解决办法。

一年多以前了,2009年6月,自从wordpress升级到2.8以后,Mail To Commenter插件所发送的邮件就出现了问题:发送的邮件没有发件人,虽然基本功能还是能实现的,但是却真的有碍观瞻,说不定还会被人当作成垃圾邮件了……

在一个叫做Derek’s Blog的wordpress上,我找到了问题的解决办法:(以下内容转自:Mail To Commenter的未知发件人问题

修改Mail To Commenter插件目录下的文件mailtocommenter_functions.php,路径为****/wp-content/plugins/mailtocommenter,找到function mailtocommenter_send_email此行,照着修改(我是CP的),然后测试成功,收工。

function mailtocommenter_send_email($to,$subject,$message){
	$hostname = get_option('home');
	preg_match("/^(http:\/\/)?([^\/]+)/i",$hostname, $matches);
	$blogname = get_option('blogname');
	$blognameO = $blogname;
	$blogname .= " <no-reply@";
	$blogname .= $matches[2];
	$blogname .= ">";

	$charset = get_option('blog_charset');
	$headers  = "From: $blognameO <no-reply@$matches[2]> \n" ;
	$headers .= "MIME-Version: 1.0\n";
	$headers .= "Content-Type: text/html;charset=\"$charset\"\n";
	$to = strtolower($to);
	return @wp_mail($to, $subject, $message, $headers);
}
果然,按照Derek的方法修改之后,现在回复的邮件已经显示发件人了……
“困扰”了一年多的问题在偶然中找到了解决办法,正所谓“无心插柳柳成荫”呀……

启示

对网站做一些简单的修改,并不一定非要懂后台,懂代码,仔细分析一下代码内容,必要时借助一下Google,小问题也是可以轻松解决的!

广告位
~~~广告位招商中~~~

5 条评论

  1. laowi说道:

    过来学习一下~

  2. 卢松松说道:

    看代码就知道不是zblog了 呵呵

  3. SunQ说道:

    @卢松松 呵呵,WordPress~

  4. ylsnuha说道:

    这个用的代码。。。

  5. 晒太阳的冰说道:

    呃……我放在之后却看不到图标,郁闷啊