shopify - есть ли способ создать cms-блок наподобие "разделов" для доступа с разных сайтов (товар / коллекция / страница)
На самом деле я работаю над темой shopify и ищу способ создания контента, такого как разделы или блоки разделов, в одном месте, который можно вызывать в любой шаблонной жидкости для повторного использования созданных блоков в различных ситуациях на протяжении всего процесса. тема.
что-то вроде информационного блока, баннера или целого раздела, который может отображаться в коллекции, а также в некоторых продуктах, в зависимости от стоимости продукта.
таким образом, содержимое можно легко изменить в редакторе wysiwyg- или section(-block) и изменить в рамках всей темы.
Мне удалось что-то подобное, создав отдельный блог, который я использую для создания общедоступного контента, который можно вызывать в любом файле темы.
Неудовлетворительно я не удовлетворен, потому что articels должны быть опубликованы, чтобы быть видимыми и поэтому доступны, когда вы знаете URL-адрес блога.
Существует ли функция, похожая на cms-block, в shopify или приложение, которое имеет эти функции?
Есть ли общий или лучший способ, чем:
{% if condition==true %}
<div class="blog-insert-class">
{% assign article = articles['BlogName/ArticleName'] %}
{{ article.content }}
</div>
{% endif %}
1 ответ
Вам придется создавать собственные хуки и использовать их так же, как упомянуто @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.
Но это один из немногих способов (кроме метаполей) показать динамический раздел и иметь какой-то запрос.