my blog my blog

Category: Wordpress
WordPress高亮插件推荐之Syntax Highlighter Compress

 

前几天顾客买主机的时候说想让奶牛帮着安装个高亮插件,奶牛平时虽然有写一些代码出来,但是都是命令类的,所以也没用过高亮代码。前阵子帮群里MM小青青在blogcn那里调用过它们的高亮插件,每次插入代码都需要手动来调整,不是很舒服,这次介绍的这款插件Syntax Highlighter Compress可以直接在工具栏中找到,插入代码的时候直接插入就ok,不用手动切换到html上来修改代码了。

插件支持的代码类型有:

AppleScript, ActionScript3, Bash/shell, Coldfusion, C#, C++, CSS, Delphi, Diff, Erlang, Groovy, JavaScript, Java, JavaFX, Perl, PHP, Plain Text, Python, Ruby, Scala, SQL, Visual Basic , XML

Syntax Highlighter Compress下载:点此下载

安装方法,直接解压缩到wordpress的wp-content/plugins下面就可以了。

从Akismet黑名单中解救自己的邮箱网站信息

 

最近跑去别人的blog留言,发现自己的评论老是莫名其妙的被吃掉,Wordpress吃评论的东东一想就是Akismet,难道自己被打入黑名单了?不是吧,奶牛这么兢兢业业的也被打进去了是不是太残忍了,不行,咱得自救啊~~~

google了一下有同样问题的朋友还不少,方法嘛就是手动提交申请到Akismet的官网,来解救自己的帐号。奶牛说下方法:

1.进入网址http://akismet.com/contact/来打开akismet的联系页面,页面全英文,不过没关系,奶牛领着你一步步走。

Questions, comments and criticisms are all welcome.

下方选择 I think Akismet is catching my comments by mistake

我认为Akismet把我的评论误吞了

2.回答那个数学问题?答案自己算哈Your name填你常用的网名,留言那个, 填写你常用的邮箱,也填平时留言那个,Your blog URL你博客的地址,API key (if known)这里选填,直接掠过就好了,

My comments were caught by your Akismet and i think that my infomation is in your blacklist.I want get myself out your blacklist and can leave comments on others’ blog.

3.提交等回复,奶牛昨晚提交的今天就收到了邮件回复

Hi,

Sorry for the problem.  I believe it is fixed now.


-- 
Mark 

吼吼,搞定,黑名单自救完成。

最后想说一句,如果看到自己的垃圾评论中有非垃圾评论,一定一定要把他们救出来啊~~~

Godaddy的数据库备份导入到其他服务器出错的解决方法

 

奶牛有个站在Godaddy放着,前几天Godaddy的主机到期了,所以那个站就转出了,根目录下的内容没啥问题,直接上传就好了,但是数据库却让奶牛犯了难,在cpanel的PHPadmin中怎么导入都出错,这可怎么弄,莫非是数据库不兼容,不至于吧,数据的内容应该问题不大,感觉应该是文件的头部有些问题,索性就拿来自己的奶牛博客的MySQL数据库比较了下,这一比较还真发现了问题了。

用Notepad++打开了奶牛博客的数据量跟的另一个网站的数据库,从头开始一行行比较,其实那个MySQL数据库是明文存放的,打开后会发现文件的内容很清晰,当对比到数据库名称的那行就发现问题了,Godaddy生成的备份多了一行

CREATE DATABASE `XXX` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `XXX`;

感觉这一行也没啥问题啊,但是去掉后对整个数据库的结构也没啥影响,就直接去掉了,然后保存回到Cpanel下进行数据库导入,成功。

仔细想想,八成是因为数据库的版本不太一样,导致这行内容无法正常识别,这行是注释的文字符的类型跟整理类型,管它呢,删除后正常导入就ok啦~~~

Cpanel后台不给力,WordPress博客开启gzip压缩方法介绍

 

前阵子换了服务器后发现流量飞增,自己当时也没想到是没有开启gzip的原因,因为上个服务器默认开启了,当自己想到的时候从后台登录cpanel一看,晕,竟然没有那个优化网站的选项,google之,发现网上介绍的方法也很多,有改php.ini的,有改.htaccess的,呃,方法很多,奶牛也测试了一些,最后,种种原因,木有成功,不是主页不正常显示就是内部错误,这个方法毕竟都是有适应环境的,所以嘛,嘻嘻,不解释。

今天放一个奶牛测试成功了的方法,这个方法针对wordpress博客哦,操作很简单,只要在博客根目录下的index.php文件中加入一行代码就可以了。

找到根目录下的index.php文件中的

define('WP_USE_THEMES', true);

注意,这里的index.php文件是根目录下的,不是主题目录下的哦~

将上面代码的后面添加一行

ob_start('ob_gzhandler');

就可以了,保存退出,上传文件。然后从http://tool.chinaz.com/Gzips/等类似网站就可以查询自己的网站是否开启了gzip,嘻嘻,去试试吧~~~开启gzip可以压缩网页传输的文件,加快网站的载入速度,挺不错滴~

Wordpess页面用模板调用分类文章的方法

奶牛博客改版咯,添加了android分类,以后奶牛也会写些android系统方面滴东东,感觉android的趋势很强劲丫,乌咔咔~~~言归正传,这次导航的分类是页面调用模板来完成滴,今天就来分享下如何通过制作一个页面模板来调用文章分类(话说奶牛真的很久都没有搞过wordpress啦)~~

先找到主题目录下的index.php,复制一份,命名为自己的模板希望的名称(其实这个名称改啥都行,建议用英文命名,不用用汉字),这里我们就叫它sample.php吧~

用文本编辑器打开sample.php文件(记事本可以么?奶牛这里不建议用windows默认的记事本,因为容易编码错误,建议使用ultraedit或者notepad++),然后在文件的最上方加入代码

<?php
/* Template Name: sample */
?>

这里的sample就是添加新页面的时候那个模版的名称

然后我们找到文件中的这行代码

<?php if (have_posts()) : ?>

或者是类似的语句,因为主题的写法不太一样,所以不能一概而论,但是一般都差不多,在该句前方加入代码

<?php
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=分类序号&showposts=' . $limit=页面文章数 . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>

分类的序号从后台的编辑分类的时候可以看到地址里面有个cat_ID=XXX,这个XXX就是你的分类序号,替换到上面的分类序号处就可以了(用数字哦),然后是页面文章数也是根据需要更改,也用数字。

这样这个模版就做好了,上传到我们的主题目录下。

这时候去后台添加新页面,看看那里的模版处是不是有自己的模版了,选择保存就ok啦~~~

去掉wordpress标题中的»

 

做wordpress的SEO是个艰巨滴任务,需要优化的地方很多,奶牛也遇到过很多问题,以后奶牛会陆续滴把自己的实践过程中的一些问题拿出来跟大家分享。今天奶牛来说说这个标题中的»,如果你的文章标题中没有遇到出现»的情况可以略过了,奶牛在刚开始做的时候遇到过这个问题,当时滴解决方法是用All in one SEO 这个插件来进行的标题优化,可以很好滴处理好这个问题,但是老是用插件感觉挺别扭的。最近主题升级的时候逛到了 柳城 博客的一篇文章,介绍了标题的一些优化方式,柳城给了大家两种方法来去掉wordpress标题中的 » 。

1.将header.php文件中title处的<?php wp_title(); ?>更改为<?php wp_title(”); ?> ,再将functions.php文件中加入如下代码即可。

// Removes the white spaces from wp_title
function af_titledespacer($title) {
return trim($title);
}
add_filter(‘wp_title’, ‘af_titledespacer’);

 

2.这个方法也是奶牛正在使用的,直接将header.php中标题调用更改为

<?php echo trim(wp_title('',0)); ?>

就可以解决标题的输出问题了。

WordPress垃圾评论克星Akismet

 

今天奶牛一看后台的评论,竟然一天暴增了30+条垃圾评论(昨天总共才30条),狂汗,还好前几天装了垃圾评论的屏蔽插件Akismet。话说奶牛装垃圾评论的屏蔽插件的时候还是在端午,那阵子奶牛出去玩,害怕有垃圾评论,所以才开的,今天才发现效果只明显。Akismet确实挺强悍的,一般的垃圾评论都能kill掉。下面就来说说这个小插件。

这个插件是WordPress自带的一个小插件,启用需要一个Akismet API Key,这个可以在安装结束激活插件之后的Akismet配置中找到,你可以根据提示注册一个就可以正常使用了。Akismet不需要什么设置,一切都走网络,只要开启就可以了,开启成功后在Akismet的配置中就可以看到绿色的网络连通。

有需要的童鞋可以在WP的后台添加插件搜索Akismet就可以进行安装了。

WordPress 3.0中文版下载

 

还在等待wp的中文版本么?奶牛大家找来咯~~~~

WordPress中文团队发布了最新的WordPress 3.0正式版的中文版本及中文语言包,此版本的更新特征有:

  • WordPress 和 WordPress MU 已经合并,现在一个 WordPress 安装就能管理多个博客;
  • WordPress 3.0 新推出了 “Twenty Ten” 的默认主题,它包含了现在 WordPress 所有的功能;
  • 新的菜单管理系统,可以让你创建包含由日志,页面,分类,标签和其他链接组成的完全自定义菜单;
  • 自定义 header (头图)和背景颜色或者图片的 API;
  • WordPress 后台每个界面的帮助标签下都有上下文帮助;
  • 现在全新安装的 WordPress 可以自定义帐号和密码;
  • 在编辑主题的时候会自动进入维护模式;
  • 支持短连接;
  • 支持和改进了自定义日志类型和自定义分类系统;
  • 一个更轻快颜色的后台,让你更加关注你的内容。

WordPress中文团队发布的下载地址是:

需要的朋友现在可以下载升级成中文咯~~~

为wordpress添加关键字和描述

 

很久之前就发现奶牛的文章在google的收录中貌似有问题,今天终于找出来了,原来是所有的关键字和描述都成了首页的关键词和描述了,狂汗中,因为关键字和描述都是手动添加的,仅仅是在head头文件中添加了关键字跟描述,但是没有做出判断,所以导致所有页面的关键字跟描述都成了首页的关键字跟描述了。奶牛从网上找到了一种解决方法,是水煮鱼的一段代码,代码如下

<?if (is_home()){
    $description = "网站首页描述";
    $keywords = "网站关键字";
} elseif (is_single()){
    if ($post->post_excerpt) {
        $description     = $post->post_excerpt;
    } else {
        $description = substr(strip_tags($post->post_content),0,220);
    }
 
    $keywords = "";      
    $tags = wp_get_post_tags($post->ID);
    foreach ($tags as $tag ) {
        $keywords = $keywords . $tag->name . ", ";
    }
}
?>
<meta name="keywords" content="<?=$keywords?>" />
<meta name="description" content="<?=$description?>" />
 

主题的头文件一般可能会含有

<meta name="keywords" content="<?=$keywords?>" />
<meta name="description" content="<?=$description?>" />

或者相似的文字,只要替换就好了,如果没有就添加到head文件的title之后,</head>之前就可以了。

wordpress评论回复邮件通知插件与非插件双法总结

 

从前天就开始搞wordpress的评论回复的邮件通知,因为wp的通知一般是用mai()函数,所以很多win的主机需要想其它方法实现邮件通知,奶牛虽然用的是linux的主机,但是这个邮件通知可是让我费了不少心思,昨天总算找了个比较满意的方法,下面就来跟大家分享一下这个评论回复的邮件通知功能。

插件法

奶牛先来说说插件,先说大名鼎鼎的wp thread comment。

wp thread comment可谓是在邮件通知评论者的比较出名的插件了,功能也很强大,不仅可以实现Ajax嵌套回复,而且还可以根据不同的情况实现邮件回复的选择,比如全部回复啦,让评论者自己选择啦,而且对于大多数主题都会适用,可谓算是通吃型的插件,但是也有例外,就是奶牛现在用的这个主题,主题本来有嵌套,而且挺漂亮的,但是用了wp thread comment后就会变形,看着很不爽,但是这个插件的功能确实很赞,一般的主题都可以用,所以奶牛在这里依然很推荐。

既然wp thread comment用不了了,奶牛只能换其它的插件,搜索开始,先找来了一个comment reply notification,这个是国人水煮鱼的作品,但是貌似这个插件确实是针对wordpress 2.7的,奶牛博客是wordpress 2.9.2的,经过折腾后发现并不能发送邮件,呃,继续换。

mail to commmenter,这个插件也比较不错,可以自动通知管理员和评论者(虽然wordpress本身也有通知管理员的功能),你还可以通过这个插件的测试功能看看是不是确实可以发送邮件,经过测试,发送邮件是可以的,但是问题总是存在,就是回复的时候无法后台实现邮件回复(这点儿就很鸡肋了,管理员不能总在前台丫),然后就是回复的时候必须通过按钮加入需要邮件通知的人的信息,但是奶牛测试的时候回复的信息默认加入的老是最后一个评论者的,呃,然后就跟fcola询问了一下,他下班之前告诉我他解决了,然后给了我个地址,是zww写的,用 jQuery 实现点击回复之后显示@用户名的效果  ,奶牛摘取一下更改步骤过来

1. 确定自己的主题评论结构基本是 WordPress 默认的结构(也就是说主题的评论结构比较标准),而且用的是 WordPress 2.7 以上版本的 wp_list_comments 函数,具体可以参考 http://codex.wordpress.org/Template_Tags/wp_list_comments

2. 确定自己已经加载 jQuery 库,如果没有加载,在主题文件 header.php 里面找到下面这个

<?php wp_head(); ?>

在 它前面加入以下代码:(注:jquery 1.3.2 一样效果)

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript" src="<?php bloginfo(‘template_directory’); ?>/reply.js"></script>

3. 把下面的 jQuery 代码保存为 reply. js 文件,并存到主题所在目录(也可以加在主题本身已有的 js 文件里面)

/* @reply js by zwwooooo */
jQuery(document).ready(function($){ //Begin jQuery
$(‘.reply’).click(function() {
var atid = ‘"#’ + $(this).parent().attr("id") + ‘"’;
var atname = $(this).prevAll().find(‘cite:first’).text();
$("#comment").attr("value","<a href=" + atid + ">@" + atname + " </a>").focus();
});
$(‘.cancel-comment-reply a’).click(function() { //点击取消回复评论清空评论框的内容
$("#comment").attr("value",);
});
}) //End jQuery

4. OK 啦,可以试试了。加些说明:如果你的主题评论结构符合上面第 1 点所说,原则上支持 WordPress 2.7 版本以上的自带评论嵌套

奶牛实验了一下,还是没成功,唉,因为奶牛也是属于门外汉型的,不懂php,不懂java,不懂…..唉,没办法,大家有用的就自己拿去实验吧。

试用的最后一个插件是ReplyMe,这个插件功能嘛还不错,但是有一点儿奶牛很不满意,就是评论者发表评论后就先给人家回复一条告诉别人回复成功的信息,唉,说实话自己想想都挺讨厌的,也许改改也会很好用,呃,奶牛不懂代码,闪过~~~

 

非插件法

这个方法也是我现在正在用的,效果很好,自己感觉很完美,跟原生的Ajax嵌套一点儿也不冲突,而且适用范围很广,奶牛这里引用的是Willin Kan 的方法,参考的文章是Comment Mail Notify,方法文章给的很详细,奶牛也就直接拉过来啦,这个方法经过奶牛的测试,相当的不错,而且还不用插件,最主要的是后台回复也可以自动的邮件通知,超赞。

 

這是由《Ajax comments 回應郵件通知》所改進的評論回應郵件通知 (Comment Mail Notify).
主要改進兩個項目:
1. 所有模板都適用, 不只是 Ajax comments.
2. 管理者在後台回覆也可自動發郵件.

安裝步驟:
1. 如果你用了上一版的 "Ajax comments 回應郵件通知", 請先在 comments-ajax.php 刪除上一版的代碼.
2. 在下面三種方式, 選擇你想用的代碼, copy 到 functions.php 的 <?php ….. ?> 區域內.

《評論回應郵件通知》的三種代碼: (按下面的標題可直接滾下去)
一、有勾選欄, 由訪客決定是否要回應郵件通知
二、無勾選欄, 由管理者決定在什麼條件下發郵件
三、所有回覆都發郵件

必須注意的是: 你的服務器一定要有 mail() 功能. 測試方式: 在登入頁故意按下 ‘忘記密碼’, 收到郵件就有 mail() 功能; 沒收到郵件的可以下課了.


一、有勾選欄, 由訪客決定是否要回應郵件通知:

 

(會在模板自動加勾選欄, 如果不想自動加, 可把後面一小段刪除.)

/* comment_mail_notify v1.0 by willin kan. (有勾選欄, 由訪客決定) */
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->comment_author_email);
$parent_id = $comment->comment_parent ? $comment->comment_parent : ;
global $wpdb;
if ($wpdb->query("Describe {$wpdb->comments} comment_mail_notify") == )
$wpdb->query("ALTER TABLE {$wpdb->comments} ADD COLUMN comment_mail_notify TINYINT NOT NULL DEFAULT 0;");
if (($comment_author_email != $admin_email && isset($_POST[‘comment_mail_notify’])) || ($comment_author_email== $admin_email && $admin_notify == ‘1’))
$wpdb->query("UPDATE {$wpdb->comments} SET comment_mail_notify=’1′ WHERE comment_ID=’$comment_id’");
$notify = $parent_id ? get_comment($parent_id)->comment_mail_notify : ‘0’;
$spam_confirmed = $comment->comment_approved;
if ($parent_id !=  && $spam_confirmed != ‘spam’ && $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)->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;">
<p>’ . trim(get_comment($parent_id)->comment_author) . ‘, 您好!</p>
<p>您曾在《’ . get_the_title($comment->comment_post_ID) . ‘》的留言:<br />
 . trim(get_comment($parent_id)->comment_content) . ‘</p>
<p>’ . trim($comment->comment_author) . ‘ 給您的回應:<br />
 . trim($comment->comment_content) . ‘<br /></p>
<p>您可以點擊 <a href="’ . htmlspecialchars(get_comment_link($parent_id)) . ‘">查看回應完整內容</a></p>
<p>歡迎再度光臨 <a href="’ . get_option(‘home’) . ‘">’ . get_option(‘blogname’) . ‘</a></p>
<p>(此郵件由系統自動發出, 請勿回覆.)</p>
</div>’;
$from = "From: \"" . get_option(‘blogname’) . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option(‘blog_charset’) . "\n";
wp_mail( $to, $subject, $message, $headers );
//echo ‘mail to ‘, $to, ‘<br/> ‘ , $subject, $message; // for testing
}
}
add_action(‘comment_post’, ‘comment_mail_notify’);
/* 自動加勾選欄 */
function add_checkbox() {
echo ‘<input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked" style="margin-left:20px;" /><label for="comment_mail_notify">有人回覆時郵件通知我</label>’;
}
add_action(‘comment_form’, ‘add_checkbox’);
// — END —————————————-

 


二、無勾選欄, 由管理者決定在什麼條件下發郵件:


/* 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->comment_author_email);
$parent_id = $comment->comment_parent ? $comment->comment_parent : ;
$to = $parent_id ? trim(get_comment($parent_id)->comment_author_email) : ;
$spam_confirmed = $comment->comment_approved;
if (($parent_id != ) && ($spam_confirmed != ‘spam’) && ($to != $admin_email) && ($comment_author_email ==$admin_email)) {
/* 上面的判斷式,決定發出郵件的必要條件:
($parent_id != ”) && ($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 = 
<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;">
<p>’ . trim(get_comment($parent_id)->comment_author) . ‘, 您好!</p>
<p>您曾在《’ . get_the_title($comment->comment_post_ID) . ‘》的留言:<br />
 . trim(get_comment($parent_id)->comment_content) . ‘</p>
<p>’ . trim($comment->comment_author) . ‘ 給您的回應:<br />
 . trim($comment->comment_content) . ‘<br /></p>
<p>您可以點擊 <a href="’ . htmlspecialchars(get_comment_link($parent_id)) . ‘">查看回應完整內容</a></p>
<p>歡迎再度光臨 <a href="’ . get_option(‘home’) . ‘">’ . get_option(‘blogname’) . ‘</a></p>
<p>(此郵件由系統自動發出, 請勿回覆.)</p>
</div>’;
$from = "From: \"" . get_option(‘blogname’) . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option(‘blog_charset’) . "\n";
wp_mail( $to, $subject, $message, $headers );
//echo ‘mail to ‘, $to, ‘<br/> ‘ , $subject, $message; // for testing
}
}
add_action(‘comment_post’, ‘comment_mail_notify’);
// — END —————————————-

 

 

三、所有回覆都發郵件:

(當然, 在底層的評論不發郵件, 回覆的才發)

/* comment_mail_notify v1.0 by willin kan. (所有回覆都發郵件) */
function comment_mail_notify($comment_id) {
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $comment->comment_parent : ;
$spam_confirmed = $comment->comment_approved;
if (($parent_id != ) && ($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)->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;">
<p>’ . trim(get_comment($parent_id)->comment_author) . ‘, 您好!</p>
<p>您曾在《’ . get_the_title($comment->comment_post_ID) . ‘》的留言:<br />
 . trim(get_comment($parent_id)->comment_content) . ‘</p>
<p>’ . trim($comment->comment_author) . ‘ 給您的回應:<br />
 . trim($comment->comment_content) . ‘<br /></p>
<p>您可以點擊 <a href="’ . htmlspecialchars(get_comment_link($parent_id)) . ‘">查看回應完整內容</a></p>
<p>歡迎再度光臨 <a href="’ . get_option(‘home’) . ‘">’ . get_option(‘blogname’) . ‘</a></p>
<p>(此郵件由系統自動發出, 請勿回覆.)</p>
</div>’;
$from = "From: \"" . get_option(‘blogname’) . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option(‘blog_charset’) . "\n";
wp_mail( $to, $subject, $message, $headers );
//echo ‘mail to ‘, $to, ‘<br/> ‘ , $subject, $message; // for testing
}
}
add_action(‘comment_post’, ‘comment_mail_notify’);
// — END —————————————-

其實以上三段代碼都是同一個程式, 內容幾乎完全相同, 只是怕有人不會改, 出錯時又來找我發問, 所以放了三種寫法供各位直接 copy.
感謝 
萬戈童鞋 幫忙測試, 我們試用了幾天還沒出問題, 本想試用兩個星期再公佈, 算一算時間剛好在過年後, 到時候我可能還在休假, 還是現在先發出來當作是送給各位的過年禮物吧! 新年快樂!

後記: 忘了加上 spam 檢查, 幸虧萬戈童鞋及時提醒, 謝謝萬戈! (2/10 22:24 已更新)

◎2010/4/2 又發現這程式在評論分頁的 get_comment_link() 有個 bug.
這 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 分離的童鞋, 請進行修改. 沒用到的就不能改.

 

 

 

ok,总结写完,折腾了两天总算是把这个邮件回复给搞定了,wordpress丫,还就是得折腾呢~~~