列表页: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" 只加在主列表上。加在侧栏那个上面,用户点一个筛选,侧栏也跟着变,看着莫名其妙。
