成套片段(照抄即用)
每一段都能直接粘进模板跑起来,标题后面标了该放在哪个文件里。写主题时先抄一段再改。
适用范围:新建主题、改页面版式时。前面几篇是逐个标签的说明,这一篇是成套的片段。
写主题时通常先照抄一段,再按自己的设计改 HTML 结构 —— 标签部分不用动。
1. 搜索框 + 结果高亮
<!-- [搜索页] -->
<form class="search" action="/search" method="get">
<input type="search" name="kw" value="{naicha:search}" placeholder="搜索内容">
<button type="submit">搜索</button>
</form>
{naicha:if var="listTotal" gt="0"}
<p class="muted">共 {listTotal} 条结果</p>
{naicha:list keyword="{naicha:search}" num="10" page="{naicha:param name='page'}" order="relevance"}
<a href="{list.url}">{list.title highlight="{naicha:search}"}</a>
<p>{list.summary highlight="{naicha:search}" excerpt="80"}</p>
{/naicha:list}
{naicha:page}
{naicha:else}
<p>没有找到与「{naicha:search}」相关的内容。</p>
{/naicha:if}
2. 手机版 / 电脑版切换入口
<!-- [页脚] 必须给这个入口:UA 判断不可能 100% 准(平板、折叠屏、微信内置浏览器),
判错了用户得能自己纠正 -->
{naicha:if var="viewSwitch.on" eq="1"}
<a href="{viewSwitch.url}">切换到{viewSwitch.label}</a>
{/naicha:if}
3. 关于我们 / 联系合作这类单页
<!-- [templates/你的主题/page.html] 单页统一走这个模板 -->
{naicha:include file="header.html"}
{naicha:sort}
<div class="page-head">
<div class="container">
<div class="crumb">
<a href="/">首页</a>
<span class="sep">/</span><a href="{sort.url}">{sort.name}</a>
</div>
<h1>{sort.name}</h1>
<p>{sort.intro}</p>
</div>
</div>
<div class="container section tight">
<article class="article">
<div class="body">
{naicha:list cid="{naicha:param name='cid'}" num="1"}
{list.content html="1"}
{/naicha:list}
</div>
</article>
</div>
{/naicha:sort}
{naicha:include file="footer.html"}
单页的正文存在哪儿?它同样是一篇「内容」——
栏目类型是「单页」,下面挂一篇内容,正文就在那篇里。所以这里用 {naicha:list} 取它,
没有单独的「单页专用标签」。
4. 商品列表与价格
<!-- [商城列表页] -->
{naicha:shop num="12" order="sort desc"}
<a class="card" href="{shop.url}">
<img src="{shop.thumb_url}" alt="{shop.title}">
<h3>{shop.title}</h3>
<div class="price">
<b>{shop.price}</b>
{naicha:if var="shop.market" notempty="1"}<del>{shop.market}</del>{/naicha:if}
</div>
<span>{shop.stock_text}</span>
</a>
{/naicha:shop}
{naicha:page total="{shopTotal}" num="12"}
5. 标签云
<!-- [详情页] 这篇内容身上的标签 -->
{naicha:tags content_id="{naicha:param name='id'}" num="20"}
<a class="chip" href="/tag/{tag.name urlencode="1"}">#{tag.name} <i>{tag.count}</i></a>
{/naicha:tags}
6. 图集网格
<!-- [详情] 图集存在独立表里,可以排序、带 alt -->
{naicha:gallery content_id="{naicha:param name='id'}" num="30"}
<figure>
<img src="{photo.url}" alt="{photo.alt}" loading="lazy">
<figcaption>第 {photo.index} 张</figcaption>
</figure>
{/naicha:gallery}
抄完之后要检查的四件事:
- 列表里有没有
{naicha:page}(没有的话第二页永远进不去); - 判断登录/开关是不是写成了
eq="1"(notempty在'0'上永远为真); - 正文输出有没有带
html="1"(不带就把 HTML 当文本显示出来了); - 站内链接有没有自己拼语言前缀(应该全部走
{naicha:url})。
