搜索页:search.html
搜索框写在哪、关键词怎么回填、结果怎么高亮,以及筛选与分页怎么配合。
模板文件:search.html | 访问地址:/search?kw=关键词
这个页面拿到的变量
{keyword}搜索关键词(等同于 {naicha:search}){kwscope}搜索范围:标题摘要,还是连正文一起搜(站点设置里配){filtersOn}是否开着筛选('1'/'0'){fdesc}当前筛选条件的文字描述{param.kw} {param.page}URL 上的关键词与页码{listTotal} {listPages}结果数 / 页数{seo.*} {canonical}照常这个页面能用的标签
{naicha:search}回填搜索框、拼结果链接{naicha:list}取结果:keyword="{naicha:search}" order="relevance"highlight="{naicha:search}"标题/摘要里的命中词标红(先转义再插标签,安全){naicha:page}结果分页{naicha:filters}搜完之后再按栏目/年份筛(可选)公共标签 + if/loop都能用一份完整的搜索页
{naicha:include file="header.html"}
<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}
{naicha:if var="keyword" notempty="1"}
<p>没有找到与「{naicha:search}」相关的内容。</p>
{naicha:else}
<p>输入关键词开始搜索。</p>
{/naicha:if}
{/naicha:if}
{naicha:include file="footer.html"}
⚠️ 搜索框的字段名是
⚠️
kw(不是 keyword)—— 提交到别处不会有人报错,只是搜不到东西。
⚠️
order="relevance" 只在带关键词时有意义。搜索页用它,
普通列表页用 publish desc —— 两者别混着写。
