Typecho for sae使用问题总结与解决办法

蓝飞 蓝飞 | 时间:2012-08-03, Fri | 13,778 views
后台技术 

这两天将博客程序从WordPress转到了Typecho,WordPress强大,Typecho简洁高性能,的确是比较难下定决心换,但考虑到如果申请顶级域名再换就更麻烦了,不如早换早超生= =||

但过程中却遇到了一些问题,大部分已经解决,在这里总结一下。

1. 当文章作者邮箱中包含大写时,无法获取到Gavatar头像

是Gavatar头像是以邮箱小写的md5值来获取的,而Typecho在获取文章作者头像时没有转换小写。

解决方法是打开var/Widget/Abstract/Users.php文件,将:

md5($this->mail)

替换成:

md5(strtolower($this->mail))

2.当文章代码中两个块容器之间有换行符时,没有将换行符删除

Typecho会将单个换行转换为<br>,两个换行转换为<p> </p>,但如果文章中已经包含两个块容器,而两个块容器之间有换行符,如<h3> </h3>等,会因为多出一个换行而使得行距变得非常大,极度影响了美观。

解决方法是打开var/Typecho/Common/Paragraph.php文件,在:

$text = str_replace("\r\n", "\n", trim($text));

下加一行:

$text = preg_replace("/()\n/", "\\1", $text);

3.404页面乱码

进入不存在的页面,将进入主题的404界面,但会出现数字乱码,导致网页无法正常解析。

解决方法是打开var/Typecho/Response.php文件,将194行的:

header('HTTP/1.1 ' . $code . ' ' . self::$_httpCode[$code], true, $code);

替换成:

header(isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1' . ' ' . $code . ' ' . self::$_httpCode[$code], true, $code);

4.CommentToMail for sae插件后台回复无法邮件通知作者

解决方法是打开/var/Widget/Comments/Edit.php文件,将

/** 评论插件接口 */
$this->pluginHandle()->comment($comment, $this);
......
/** 评论完成接口 */
$this->pluginHandle()->finishComment($this);

分别替换为:

/** 评论插件接口 */
$this->pluginHandle('Widget_Feedback')->comment($comment, $this);
......
/** 评论完成接口 */
$this->pluginHandle('Widget_Feedback')->finishComment($this);

5.开启Typecho的地址重写功能

修改AppConfig,在下方添加

handle:
- rewrite: if(!is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}"

上传之后,然后在后台“设置”=>“永久链接”=>“启用地址重写功能”。
但需要注意的是当启用地址重写功能时,Typecho for sae是无法修改自定义文章路径与独立页面后缀名的,如果要修改,必须先取消启用地址重写,修改完自定义文章路径或独立页面后缀名后再重新启用。

6.为Akismet 反垃圾评论插件设置密钥时,提示您使用的服务密钥错误

解决方法:使用CommentFilter插件。

7.使用Typecho ping插件,发布或修改文章时出现500错误

解决方法:使用本人编写的Typecho Ping插件,稍后整理提供。

如需转载请注明出处:蓝飞技术部落格

5 条评论 »

  1. 这么看来头像还需要Trim一下。

    1. 对比头像么?没区别呀?

      1. 我记得我评论居然可以打空格,会影响头像获取。

  2. 对比一下这两条评论吧!

  3. 话说博主的代码高亮 用的什么插件啊 还是用的什么编辑器带的高亮代码啊??? 求指教