shopify - есть ли способ создать cms-блок наподобие «разделов» для доступа с разных сайтов (товар / коллекция / страница) - PullRequest
0 голосов
/ 31 января 2019

Я на самом деле работаю над темой shopify и ищу способ создания контента, такого как разделы или блоки разделов, в одном месте, который можно вызывать в любой шаблонной жидкости для повторного использования созданных блоков в различных ситуациях.в пределах всей темы.

что-то вроде информационного блока, баннера или целого раздела, которые могут отображаться в коллекции, а также в некоторых продуктах, в зависимости от значения продукта.

так что содержимое может быть легко изменено в редакторе wysiwyg- или section (-block) и изменено внутри всей темы.

Мне удалось что-то подобное, создав отдельный блог, который я использую для создания глобально доступногосодержимое, которое может быть вызвано в любом файле темы.

Я не удовлетворен ранее, потому что статьи должны быть опубликованы, чтобы быть видимыми и поэтому доступны, когда вы знаете URL-адрес блога.

Isсуществует ли функция, похожая на cms-block, в магазин или приложение, которое имеет эти функции?Это общий или лучший способ, чем:

   {% if condition==true %}
      <div class="blog-insert-class">
        {% assign article = articles['BlogName/ArticleName'] %}
              {{ article.content }}
      </div>
   {% endif %}

1 Ответ

0 голосов
/ 01 февраля 2019

Вам нужно будет создавать собственные хуки и использовать их так же, как упомянуто @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.

Но это один из немногих (кроме метаполей) способов показать динамический раздел и выполнить какой-то запрос.

...