修改MT的作者归档路径

10:26 PM  /  woody  /  评论(0)  /  引用(0)   /  之前 之后

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

类别: learn
引用地址: /cgi-bin/mtcgi/mt-tb.cgi/1571.
关于我   /   文章汇整   /   留言汇整
我们的世界
并不像你说的 真有那么坏
你又何必感慨
用你的关怀 和所有的爱
为这个世界 添一些美丽色彩