教你修改 Movable Type 的作者归档路径

小编辑 发布于 2010/06/11 08:36
阅读 329
收藏 1

Movable Type,简称MT,是由位于美国加州的Six Apart公司推出的網誌(blog)发布系统。它是全球最受欢迎的网誌系统之一,包含多用户,评论,引用(TrackBack),主题等功能,并广泛的支持各种第三方插件。Movable Type不仅可以应用于个人的網誌系统,而且可以应用于商业、教育等领域。Movable Type于2007年12月12日正式宣布以GPLv2的协议开源。

Movable Type 的按作者归档,是以作者的"显示名称"(AuthorDisplayName)为路径名的,这给我带来了很大的麻烦。因为如果显示名称设定为完全的中 文,MT 是不能以此为路径名的,它只能用作者编号来代替。

比如说一个作者,注册名称(AuthorName)为 apple,显示名称(AuthorDisplayName)为Jobs,作者编号(AuthorID)为1;
另一位作者,注册名称为 bill,显示名称为比尔,作者编号为2。
那么 MT 在进行作者归档的时候,apple 就会被归档在 "/jobs/index.html",而 bill 的路径则是"/author2/index.html",对用户和搜索引擎都很不友好。

不知道 MT 为何这样设定,并且没有提供更改选项。
如果系统有很多作者,显示名称重复了它会如何处理呢?
另外如果使用了汉化,"authorX" 会被汉化为"作者(X)",MT 将会进行错误的作者归档,可能会造成首页的错误。

我试着用 AuthorName 替代 AuthorDisplayName,基本解决了这个问题。

方法是修改 ContextHandlers.pm 这个文件(路径为 lib\MT\Template)。
下载、备份这个文件, 找到下面这一行:
'a' => "<MTAuthorDisplayName $dir>,
把 它替换为
'a' => "<MTAuthorName $dir>",
重新上传, 覆盖。

然后登录 MT 后台管理,修改归档模版的 Entry Listing 模版。
在归档映射那里,把"按作者"归档的路径自定义为 %a/%f,"按作者以月"自定义为 %a/%y/%m/%f。保存,重建系 统,应该就 OK 了。

也许你已经发现,这个修改方式很暴力。那是因为我并没有看懂代码,只能试着进行简单的替代。欢迎提供更好的修改方法。

参考文档:Archive File Path Specifiers

加载中
返回顶部
顶部