首页 / 建站手册 / 照抄就能用的整段代码

照抄就能用的整段代码

每一段都能直接粘进模板跑起来,标题后面标了该放在哪个文件里。写主题时先抄一段再改。

适用范围:新建主题、改页面版式时。前面几篇是逐个标签的说明,这一篇是成套的片段。

写主题时通常先照抄一段,再按自己的设计改 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})。
没找到答案? 可以在 联系我们 留言说明使用场景,我们会补充进文档。