【Shopify】制作 FAQ(常见问题)模板(含源码)
①创建常见问题页面模板
与普通页面(固定页面)分开 创建一个FAQ专用的页面模板 。
在模板的编辑代码中,添加新的templates页面。
可以起名为「page.faq.liquid」。

再添加一个section页面,起名为「faq-template.liquid」。

创建 faq-template.liquid 后,删除 page.faq.liquid 的所有内容并加载 faq-template.liquid。
{% section 'faq-template' %}
如果它看起来像这样就可以了。
其实直接写页面内容也可以,但如果你想在模板自定义里编辑的话,就需要使用section。

②将 HTML 添加到创建的 faq-template.liquid
由于 faq-template.liquid 是空的,所以不会显示任何内容,将添加 HTML 来显示 FAQ 。
这个样式比较简陋,仅供参考。
可以自己在下面的style里修改。
<div class="qa-list mts">
{% for block in section.blocks %}
<dl class="qa">
<dt>{{ block.settings.question }}</dt>
<dd>
<p>{{ block.settings.answer }}</p>
</dd>
</dl>
{% endfor %}
</div>
<style>
.qa-list dl {
position: relative;
margin: 0;
padding: 28px 80px 28px 30px;
cursor: pointer;
border-bottom: 1px solid #000;
}
.qa-list dl:first-child {
border-top: 1px solid #000;
}
.qa-list dl::before {
position: absolute;
top: 35px;
right: 35px;
display: block;
width: 7px;
height: 7px;
margin: auto;
content: '';
transform: rotate(135deg);
border-top: 2px solid #000;
border-right: 2px solid #000;
}
.qa-list .open::before {
transform: rotate(-45deg);
}
.qa-list dl dt {
position: relative;
margin: 0;
padding: 0 0 0 50px;
font-weight: bold;
font-size: 20px;
}
.qa-list dl dt::before {
font-size: 22px;
line-height: 1;
position: absolute;
top: 3px;
left: 0;
display: block;
content: 'Q.';
color: #3285bf;
}
.qa-list dl dd::before {
font-size: 22px;
line-height: 1;
position: absolute;
top: 3px;
left: 2px;
display: block;
content: 'A.';
font-weight: bold;
color: #3285bf;
}
.qa-list dl dd {
position: relative;
display: none;
height: auto;
margin: 20px 0 0;
padding: 0 0 0 50px;
}
.qa-list dl dd p {
margin: 30px 0 0;
}
.qa-list dl dd p:first-child{
margin-top: 0;
}
@media screen and (max-width: 767px) {
.qa-list dl {
position: relative;
padding: 15px 40px 15px 10px;
}
.qa-list dl::before {
top: 20px;
right: 20px;
width: 7px;
height: 7px;
}
.qa-list dl dt {
padding: 0 0 0 30px;
font-size: 14px;
}
.qa-list dl dt::before {
font-size: 14px;
top: 3px;
left: 5px;
content: 'Q.';
}
.qa-list dl dd::before {
font-size: 14px;
top: 5px;
left: 5px;
content: 'A.';
}
.qa-list dl dd {
margin: 10px 0 0;
padding: 0 0 0 30px;
font-size: 14px;
}
.qa-list dl dd p {
margin: 30px 0 0;
}
.qa-list dl dd p:first-child{
margin-top: 0;
}
}
</style>
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script>
$(function(){
$(".qa-list dd").hide();
$(".qa-list dl").on("click", function(e){
$('dd',this).slideToggle('fast');
if($(this).hasClass('open')){
$(this).removeClass('open');
}else{
$(this).addClass('open');
}
});
});
</script>
{% schema %}
{
"name": "FAQ",
"settings": [],
"blocks": [
{
"type": "question",
"name": "質問",
"settings": [
{
"type": "text",
"id": "question",
"label": "質問タイトル"
},
{
"type": "richtext",
"id": "answer",
"label": "答え"
}
]
}
]
}
{% endschema %}
商店页面里创建一个FAQ的页面,并选择之前添加的 page.faq 模板 。

③在模板自定义里编辑内容
不用在商店页面里编辑,在模板自定义里改文字内容。
图片中是Shopify 默认主题 “Debut” 的预览效果。



