您将必须创建自定义挂钩并以与@McNab 提到的类似方式使用它们,但不要输入全部内容。
例如,如果我们以您的示例为例,我们可以创建一个名为[article]
. 我们将为其添加一个句柄属性,因此它将变为[article handle="some-handle"]
.
您需要在内容中的某处输入上述简码。然后您可以使用@McNab 提到的提供的简码,或者您可以编写自定义简码。
对于自定义的,您需要创建一个片段:
article-shortcode.liquid
使用以下代码:
<div class="blog-insert-class">
{% assign article = articles[article-shortcode] %}
{{ article.content }}
</div>
之后,您将需要获取您的内容并对其进行修改以检查那里是否存在短代码。
所以是这样的:
{%- assign content = page.content -%}
{%- assign content_arr = content | split: '[article handle="' -%}
{%- if page.content contains '[article handle="' -%}
{% comment %}Get the handle{% endcomment %}
{%- assign article_handle = content_arr | last | split: '"]' | first -%}
{% comment %}get the content after the shortcode{% endcomment %}
{%- assign right_content = content_arr | last | split: '"]' | last -%}
{% comment %}save the content without the shortcode{% endcomment %}
{%- assign content = content_arr | first | append: right_content -%}
{%- endif -%}
{{ content }}
{% comment %}Call this where ever you like on the page{% endcomment %}
{%- if article_handle.size > 0 -%}
{%- include 'article-shortcode' with article_handle -%}
{%- endif -%}
这是@McNab 提到的简码的更基本和精简版本。
但这是显示动态部分并进行某种查询的唯一方法之一(除了 Metafields )。