search 模板
search 模板渲染搜索页面,展示 storefront search 的结果。
小提示
可以参考 Dawn 主题中的 search template 和它的 main section 来了解一个示例实现。

位置
search 模板位于主题的 templates 目录下:
└── theme├── layout├── templates| ...| ├── search.json| ......
内容
你应该在 search 模板或模板内部的某个 section 中包含以下内容:
search object
你可以使用 Liquid 的 search object 来展示搜索详情。
search form
要跳转到搜索页面,顾客需要通过一个搜索表单进行搜索。你可以在主题中添加一个 <form> 元素,设置 action="{{ routes.search_url }}"。在表单内部,你需要添加一个带有以下属性的输入框:
type="text"name="q"
你还应该设置输入框的 value,让它反映 search object 的 terms 属性值,这样顾客之前输入的搜索词就可以被保留:
<form action="{{ routes.search_url }}"><input type="text"placeholder="Search"name="q"value="{{ search.terms | escape }}"><input type="submit" value="Search"></form>
小提示
想了解更多关于搜索表单的信息,可以参考 Storefront search。
search results
你可以通过遍历 search object 的 results 属性来展示搜索结果:
{% for item in search.results %}<!-- item details -->{% endfor %}
用法
在使用 search 模板时,你应该了解一下 highlighting search terms。
小提示
如果你使用的是 JSON 模板,那么所有 HTML 或 Liquid 代码需要包含在模板引用的一个 section 中。
Highlight search terms
如果你在展示搜索结果时输出了相关内容,那么可以使用 Liquid 的 highlight filter 来高亮搜索词:
{% for item in search.results %}<!-- item details -->{{ item.content | highlight: search.terms }}{% endfor %}
小提示
这个 filter 会把匹配的文本加粗,包裹在一个 <strong> 元素中,元素带有 class="highlight",如果想要添加额外的样式,可以用这个 class。
