在Six apart 读到一篇文章,介绍了MT 3.2 版本支持的一项新功能:Entry basename control,在3.2 版本之前,MT不支持手动命名Entries 发布的URL ,是根据Title 自动生成的,如果是英文标题,会将其转化为小写,空格转化为下划线,并自动截断。如果是中文标题,则汉字部分被字母填充,类似于下面这样:
mt_oeoeoeentrie.html
在3.2 版本中提供了额外的Field 对URL 进行手动指定,这样的URL 就更友好。不过我一直使用3.14 版本,并通过变通的方法实现了URL手动命名。
为此需要占用Entries 编辑界面中的Extended Entry 项,并在Individual Archives 中进行设置。
WEBLOG CONFIG -> Archives Files -> Archives
选中Individual 的复选框,在Archives File Template 编辑框中设置:
<MTSubCategoryPath>/<MTIfNonEmpty tag="MTEntryMore"><$MTEntryMore dirify="1"$><MTElse><MTEntryDate format="%Y%m%d%H%M"></MTElse></MTIfNonEmpty>.html
<MTSubCategoryPath> 标签相当于:
<MTParentCategories glue="/"><MTCategoryLabel dirify="1"></MTParentCategories>
可将当前项所属所有父分类按层级,由"/" 进行连接,返回按文件路径规则格式化的字符串。
MTEntryMore 标签从Extended Entry 项中提取URL 命名,如果没有指定,则采用发布的日期命名URL 。
例如,我在本篇Entry 的Extended Entry 中指定:
mt entry basename control
则生成如下URL(本篇所属分类:Study Notes -> Web):
study_notes/web/mt_entry_basename_control.html当然,如果你使用或者升级到3.2 版本,就不用费这么大的周折了.


