PageArchives插件

在MT3的时候,按分类归档页面默认是把这个分类下的所有文章都列出来的,这样要是分类下有很多的文章,生成的分类页就很长,我们可以利用PageArchives插件来解决,把归档页面分页。MT4的时候,每个分类列表页显示的是最近的几篇文章,但是我们也可以来显示所有的文章,然后用PageArchives来分页。

在MT3的时候,分类归档的页面默认是按照升序排列的,但是MT4变成了降序,就是最新的文章显示在最前面,这样的话,有一个弱点,假如现在我们的一篇文章在第二页,当我们文章增多的时候,可能就在第三页了。当我们页面上的内容一直改变,对搜索引擎不好,对用户也不好,当用户搜索到该页的时候,但是又找不到内容。所以我们要把排序改成升序的。

具体的设置是进入博客设置,选择entry,然后选择排序为Ascending。这样设置完之后,首页上也会按照升序来排列,我们可以在index.html页面里面设置它为降序排列,具体的办法是:在MTEntries标签后面加  sort_order="descend"  ,这样首页上的显示就是降序排列。还有一个地方需要修改,那就是widget中的recent entries,进入这里,找到第二行的代码,在代码的后面也加上 sort_order="descend" ,这样,最新日志会按照降序的顺序排列。如果碰到你想降序排列的,然而显示的又是升序的,你就可以采用加入  sort_order="descend"  来实现升序排列。可以不要设置这里了,代码里面直接把按月归档和按分类归档的文章按升序排列就可以了,这样改的地方就比较少了。(更新于2008年6月11日)

这里(http://www.aldenbates.com/plugins/pagedarchives.html)下载PageArchives插件,然后去后台设置一下,在插件的setting里面设置每页显示几篇文章,是否要在页面前加"index"等,设置完成之后就可以去修改模板了。进入Design-->Templates选择Archive Templates,选择Entry Listing,找到

<MTIf name="datebased_archive">
    <MTEntries >
<$MTEntryTrackbackData$>
<$MTInclude module="Entry Summary"$>
    </MTEntries>
<MTElse>
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="Entry Summary"$>
    </MTEntries>
</MTIf>

改成:

<MTIf name="datebased_archive">
    <MTEntries sort_order="ascend">
<MTPAEntry>
<$MTEntryTrackbackData$>
<$MTInclude module="Entry Summary"$>
    </MTEntries>
<MTPAEnd>
<MTElse>
    <MTEntries sort_order="ascend">
<MTPAEntry>
<$MTEntryTrackbackData$>
<$MTInclude module="Entry Summary"$>
    </MTEntries>
<MTPAEnd>
</MTIf>
<MTPAIfMultiplePages><div style="text-align: center"><MTPAPreviousPage show="1"> <MTPAPageList> <MTPANextPage show="1"></div></MTPAIfMultiplePages>

重建一下博客,显示的就和曙光博客上的分类一样了,具体的可以去曙光博客看看,当然,按月归档也会分页。具体的PageArchives的更的资料可以参考作者的网站

针对MT4.21 Pro的改进,MT4.21和MT4.0的时候在修改模板的时候有点不一样。

原来的代码,在27行左右:

<mt:Entries limit="$limit">
<$mt:Include module="Entry Summary"$>
</mt:Entries>

修改成

<mt:Entries sort_order="ascend">
<MTPAEntry>
<$mt:Include module="Entry Summary"$>
</mt:Entries>
<MTPAEnd>

<MTPAIfMultiplePages><div style="text-align: center"><MTPAPreviousPage show="1"> <MTPAPageList>
<MTPANextPage show="1"></div></MTPAIfMultiplePages>

还有,最好把按月归档和按分类归档分开,就是新建一个Archive Template,使用的代码是一样的,就是说给按分类归档使用修改过的代码(就是增加了PageArvhives插件的代码),按月归档使用默认的Blog Entry Listing。

P.S. 今天才发现,这个插件已经挺智能了。我在曙光博客里面的归档按月中采用的是/category/yyyy_mm.html的格式,如果有多篇文章要分页的话,插件会自动给你分成/category/yyyy_mm2.html   /category/yyyy_mm3.html这样的格式。就不会出现页面被覆盖的情况,推荐大家使用这个插件,体积小的网页按道理说更适合搜索引擎的口味。

2 Comments

  1. 我看你一定是个高手吧,以后要好好向你学习呀。我看了你的Feedsky Feed,很正常,但我的为什么一周都没更新了,郁闷啊!

  1. 对MT还是比较熟悉的,呵呵。Feedsky有的时候会出现不正常的,延迟很普遍,如果您的主机(流量等)支持得了的话,最好还是托管在自己的博客上。