Вам нужно будет создавать собственные хуки и использовать их так же, как упомянуто @McNab, но не вводить весь контент.
Например, если мы возьмем ваш пример, мы можем создать шорткод, который называется [article]
.Мы добавим к нему атрибут handle, чтобы он стал [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.
Но это один из немногих (кроме метаполей) способов показать динамический раздел и выполнить какой-то запрос.