[SiteLog]终于迎来了原生的MT主页/分类页的分页

 This is a SiteLog for Easun.org。

   对于静态发布的MT来说,主页/分类页 的分页很不好实现。一直以来,要在主页展示更多页面的朋友们都是利用一个  插件PageArchives  来实现。对我来说,实现这个功能实在太繁琐了点,也就懒得折腾。

今天,在测试MT5的新主题( Rainier 1.04)的时候,居然发现可以分页了。

立即查看模板,发现可以原生分页,分页由 mt-seach.cgi 完成。呃,又是这个 cgi ,看来资源大户的名气又要响亮一点了。

我的模板是在一直 在 "Professional Blog" 上修改的。 不想再次重写模板了。 直接移植吧。

其实很简单,要实现分页,必须给 <mt:Entries> 加上 search_results 选项。

简单的从 主页 (index.html) 模板修改,记下流水帐吧。

打开模板,在最前面添加

<mt:Ignore>设定分页每页个数。 注释By路杨</mt:Ignore>
<$mt:Var name="entries_per_page" value="10"$>

<mt:Ignore>生成默认换页链接。 注释By路杨</mt:Ignore>
<mt:SetVarBlock name="search_link">
    <$mt:CGIPath$><$mt:SearchScript$>?IncludeBlogs=<$mt:BlogID$>
    &template_id=<$mt:BuildTemplateID$>
    &limit=<$mt:Var name="entries_per_page"$>
    &archive_type=Index
    &page=
</mt:SetVarBlock>
<mt:Ignore>取消search_link里面的空行和前后的空白字符 。 注释By路杨</mt:Ignore>
<$mt:Var name="search_link" strip="" trim="1" encode_html="1" setvar="search_link"$>

找到:

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

替换成:

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

现在我们的模板已经具有换页的功能了。

在下面加上换页(上一页、下一页的选择)

代码如下:

<mt:SetVarBlock name="pagination_navigation">
  <mt:If name="search_results">
    <mt:IfMoreResults>
<li><a rel="prev" href="<$mt:NextLink encode_html="1"$>">Older entries</a></li>
    </mt:IfMoreResults>
    <mt:IfPreviousResults>
<li><a rel="next" href="<$mt:PreviousLink encode_html="1"$>">Newer entries</a></li>
    </mt:IfPreviousResults>
  <mt:Else>
    <mt:If name="archive_template">
      <$mt:ArchiveCount setvar="total_entries"$>
    <mt:Else>
      <$mt:BlogEntryCount setvar="total_entries"$>
    </mt:If>
    <mt:If name="total_entries" gt="$entries_per_page">
<li><a rel="prev" href="<$mt:Var name="search_link"$>2">Older entries</a></li>
    </mt:If>
  </mt:If>
</mt:SetVarBlock>

<mt:If name="pagination_navigation">
<$mt:Var name="pagination_navigation" strip_linefeeds="1" trim="1" setvar="pagination_navigation"$>
<nav class="pagination">
  <ul>
<$mt:Var name="pagination_navigation"$>
  </ul>
</nav>
</mt:If>


也就是Rainier默认模板的换页导航条。

现在保存模板并重建。 享受分页的快感吧 :)

当然,必要的前端美化还是必须的,这里不在说明。

详细示例,可以在本博客的主页试试~~ (本站代码有更多的前端美化。)