修复twitter digest插件的无法正确显示in-reply-to-id的bug

青蛙一直在用twitter digest插件来把tweets同步到wordpress上。 今天检查同步过来的tweets的时候,青蛙发现所有回复其他人的推中, in reply to的链接都失效了,tweet id变成了科学计数法的形式。

这个问题是由于twitter digest没有正确处理这么大的tweet id造成的, 青蛙在网上搜了一下处理php大整数的方法[1],发现只需要把这个整数sprintf成一个string就好了。 具体的修改方法:

    --- twitter-digest-old.php  2011-01-07 17:35:01.000000000 +0000
    +++ twitter-digest.php     2011-01-07 17:16:34.000000000 +0000
    @@ -281,7 +281,7 @@
        $output .= ws_make_clickable(wp_specialchars($tweet->text));
        if (!empty($tweet->in_reply_to_screen_name)
            && (!empty($tweet->in_reply_to_status_id))) {
    -    $output .=         ' <a …
more ...

推荐插件: wp-super-cache

在wowubuntu![1]上看到的wp-super-cache这个插件,青蛙立即拿来试验了一下,功效很显著。

没有优化前,青蛙用pingdom[2]测试主页面载入速度,需要将近4秒的时间。

优化过后是这样:

1

接下来需要考虑的就是怎样减小那几个js文件的载入时间了,还没找到头绪,希望能得到大牛的指点 :)

另外需要注意一下的是,如果是nginx环境安装wp-super-cache插件, 需要的rewrite规则在[1]中有提供,但是那个版本是有问题的,这里[3]的版本才是正确的。

参考资料:

[1] 小内存 VPS 优化建议 (LNMP+WordPress 环境) http://wowubuntu.com/vps-optimize.html

[2] Pingdom tools http://tools.pingdom.com

[3] Code Exchange: nginx rewrite rules for …

more ...

配置wordpress的邮件发送功能

青蛙继续倒腾vps,今天的主题是调教wordpress发送邮件。

之前在Dreamhost上面,邮件系统已经配置好了,wordpress不需要任何设置就可以直接发送邮件。 到了vps上之后,青蛙为了节省资源,没有安装邮件服务器,所以想要发送邮件,还需要自己折腾。

青蛙首先是想到了配置一个轻量级的MTA,例如msmtp之类的, 然后修改php.ini的sendmail_path参数,使它指向msmtp。 这样php程序就具有邮件发送能力了,但是这样产生的问题就是邮件的发送服务器是固定的, 而且需要配置一个帐号来做登录服务器,如果某个用户希望使用自己的服务器发送某些邮件, 这样配置就无法实现了。

为了实现完美的解决方案,青蛙又搜了一圈,发现了wordpress已经集成了一个PHPMailer[1]类, 并且提供了一个wp_mail函数[2]来发送邮件, 有很多设置SMTP的插件[3]方便我们配置SMTP服务器和外发邮件帐号信息。

青蛙选择了WP Mail SMTP插件,非常简单,把所有参数填好,wordpress就可以发送邮件了。

参考资料:

[1] PHPMailer http://phpmailer.worxware.com/

[2] Function Reference/wp_mail http://codex …

more ...