首页 / 建站手册 / 列表页:list.html

列表页:list.html

栏目列表页:当前栏目、分页、筛选条,以及"一个页面只能有一个带分页的列表"这条规矩。

模板文件:list.html(栏目没指定模板时用它;栏目可以在指定自己的模板)
访问地址:/list/cid-3 或 /list/栏目别名

这个页面拿到的变量

{category.…}当前栏目整行:和 {naicha:sort} 里的一样, 所以 {category.name} {category.intro} {category.url} 都能用; 在 {naicha:sort} 块外也取得到
{crumbs}面包屑数组,配 {naicha:loop} 展开
{param.cid}当前栏目 id(喂给 {naicha:list})
{param.page}当前页码
{listTotal}本次列表的总条数 —— 渲染完列表之后才有值
{listPages} {listItems}总页数 / 本次条数
{keyword}搜索关键词(列表页一般是空)

这个页面能用的标签

{naicha:list}主角。cid 写 {naicha:param name='cid'}、 page 写 {naicha:param name='page'}
{naicha:page}分页条。紧跟在列表后面,自动复用它的总数
{naicha:filters}筛选条(排序 / 年份 / 标签)。列表要同时写 filters="1" 才响应
{naicha:sort}当前栏目(也常用 {category.…} 直接取)
{naicha:loop}展开 {crumbs} 之类的数组
公共标签与其它块标签和首页一样都能用:site/block/include/asset/url/param/now/token/if/user/form/tags/banners/links/merchants/shop/rel/gallery/nav/navs

一份完整的列表页

{naicha:include file="header.html"}

<div class="pg-head">
  <h1>{category.name}</h1>
  <p>{category.intro}</p>
</div>

{naicha:filters show="sort,year,tag"}

{naicha:list cid="{naicha:param name='cid'}" num="12"
             page="{naicha:param name='page'}" filters="1" order="publish desc"}
  <a class="card" href="{list.url}">
    {naicha:if var="list.has_thumb" eq="1"}<img src="{list.thumb_url}" alt="{list.title}">{/naicha:if}
    <h3>{list.title}</h3>
    <p>{list.summary excerpt="60"}</p>
  </a>
{/naicha:list}

{naicha:if var="listTotal" eq="0"}<p class="empty">这个栏目还没有内容。</p>{/naicha:if}

{naicha:page}

{naicha:include file="footer.html"}
⚠️ 同一个页面只能有一个"带分页的列表"(写了 page= 或后面跟了 {naicha:page} 的那个)。侧栏的「最新 5 篇」不算 —— 它不写 page, 也不写 filters="1"。两个都带分页的话,翻页时两处会打架。

⚠️ filters="1" 只加在主列表上。加在侧栏那个上面,用户点一个筛选,侧栏也跟着变,看着莫名其妙。
没找到答案? 可以在 联系我们 留言说明使用场景,我们会补充进文档。