让Textpattern的URL支持中文 12月 3rd, 2007
UPDATE: 其实原本的txp在生成urltitle的部分无非是想要trim掉空格并把大写字母转化成小写,那么我们似乎大可以不必动用urlencode,更何况urlencode的链接似乎也不那么友好
还是和下面一样,不过要添加的代码是
if (empty ($incoming['url_title'])) { $incoming['url_title'] = trim ($incoming['Title']); $incoming['url_title'] = preg_replace (‘/s+/‘, ‘-‘, $incoming['url_title']); $incoming['url_title'] = strtolower ($incoming['url_title']); }
效果还是见本文
Textpattern的永久链接的中文bug已经是众所周知的事情了,在撰写文章或者保存文章时,如果没有指定url title,那么将根据文章的标题生成url title,最要命的是,这个生成的url title会无视标题中的中文,例如类似 中文chinese 的标题,最终生成的url title则是 chinese 不难想象,如果title全部是中文的话。。。
当然,如果你的永久链接结构包含文章id的话就没什么问题了,或者,每次都能在发表文章前记得指定一个url title
很遗憾,我不是这种人,只好想个一劳永逸的解决办法了—hack一下code
说来很简单,php提供了一个urlencode的函数,对titile调用这个函数然后把结果指定给url title就行了
编辑 textpattern/include/txp_article.php 文件,找到 textile_main_fields 函数(4.0.5版在第925行),在函数末尾
return $incoming;
之前加一段
if (empty ($incoming['url_title'])) { $incoming['url_title'] = urlencode ($incoming['Title']); }
即可,效果看看本文的永久链接就知道了
Tags: textpattern
Posted in 学习札记 |
2 Responses to “让Textpattern的URL支持中文”
Leave a Reply
Recent Post
Recent Comments
- wayne:@Felix: 嗯...我倒是没什么要求, 就是拿来玩的,
- Felix Huang:@wayne en 始终是一分钱一分货 我对稳定性要求比较高
- wayne:@mattw: sandbox的自带style, 我还没空动
- wayne:@mattw: 反正留着也没用... @dimlau: 下
- Felix Huang:我还是一直用mediatemple的(gs)...... 呵
- dimlau:装的不像,没有我帅
- mattw:没到期你 cancel 个啥,留着做测试、做 tunnel
- westup:看你不断的折腾ING
- dimlau:哈哈,又换WP了
- wayne:@半瓶墨水: 不好意思, 从mt导入数据的时候换行被搞乱了
强啊。。。
其实修改成像blogger或者movabletype的那种形式就可以了
把全中文标题的文章url title自动变成“post-id号”形式
@dimlau: 总觉得post-id这样子不是很友好的说。。。呵呵