Añadir artículos personalizados en collections Shopify

Tabla de Contenidos

Veamos paso a paso cómo añadir artículos personalizados en collections:

1. Crear section: collection-blog-posts.liquid

<section class="Section Section--spacingNormal" id="section-{{ section.id }}" data-section-type="article-list" data-section-id="{{ section.id }}">
  <div class="Container">
    {%- if section.settings.subheading != blank or section.settings.title != blank -%}
      <header class="SectionHeader SectionHeader--center">
        {%- if section.settings.subheading != blank -%}
          <h3 class="SectionHeader__SubHeading Heading u-h6">{{ section.settings.subheading | escape }}</h3>
        {%- endif -%}

        {%- if section.settings.title != blank -%}
          <h2 class="SectionHeader__Heading Heading u-h1">{{ section.settings.title | escape }}</h2>
        {%- endif -%}
      </header>
    {%- endif -%}

    {%- assign show_placeholders = true -%}

    <div class="ArticleListWrapper">
      <div class="ArticleList Grid Grid--m Grid--center">
        {%- assign block = section.blocks.first -%}

        {%- case block.type -%}
          {%- when 'article' -%}
            {%- for i in (1..3) -%}
              {%- assign article_option = 'article_' | append: i -%}
              {% if collection.metafields.custom_blog[article_option] != blank %}
                {%- assign article = articles[collection.metafields.custom_blog[article_option]] -%}
              {% else %}
                {%- assign article = articles[block.settings[article_option]] -%}
              {% endif %}

              {%- unless article == empty -%}
                <div class="Grid__Cell 1/2--tablet 1/3--lap-and-up {% if forloop.index == 3 %}hidden-tablet{% endif %}">
                  {%- render 'article-item', block: block, article: article -%}
                </div>

                {%- assign show_placeholders = false -%}
              {%- endunless -%}
            {%- endfor -%}

          {%- when 'blog' -%}
            {% if blog.metafields.custom_blog.blog != blank %}
              {%- assign blog = blogs[blog.metafields.custom_blog.blog] -%}
            {% else %}
              {%- assign blog = blogs[block.settings.blog] -%}
            {% endif %}
              
            {%- for article in blog.articles limit: 3 -%}
              <div class="Grid__Cell 1/2--tablet 1/3--lap-and-up {% if forloop.index == 3 %}hidden-tablet{% endif %}">
                {%- render 'article-item', block: block, article: article -%}
              </div>

              {%- assign show_placeholders = false -%}
            {%- endfor -%}
        {%- endcase -%}

        {%- if show_placeholders -%}
          {%- for i in (1..3) -%}
            <div class="Grid__Cell 1/2--tablet 1/3--lap-and-up {% if forloop.index == 3 %}hidden-tablet{% endif %}">
              <article class="ArticleItem">
                {%- capture placeholder -%}{% cycle 'lifestyle-1', 'lifestyle-2' %}{%- endcapture -%}

                <div class="ArticleItem__ImageWrapper AspectRatio" style="--aspect-ratio: 1.7">
                  {{ placeholder | placeholder_svg_tag: 'ArticleItem__Image PlaceholderBackground PlaceholderSvg--dark' }}
                </div>

                <div class="ArticleItem__Content">
                  {%- if section.settings.show_category -%}
                    <span class="ArticleItem__Category Heading u-h6 Text--subdued">{{ 'home_page.onboarding.article_category' | t }}</span>
                  {%- endif -%}

                  <h2 class="ArticleItem__Title Heading u-h2">
                    <a href="#">{{ 'home_page.onboarding.article_name' | t }}</a>
                  </h2>

                  <p class="ArticleItem__Excerpt">{{ 'home_page.onboarding.article_excerpt' | t }}</p>

                  <a href="#" class="ArticleItem__Link Link Link--underline">{{ 'blog.article.read_more' | t }}</a>
                </div>
              </article>
            </div>
          {%- endfor -%}
        {%- endif -%}
      </div>
    </div>

    {%- if section.settings.button_text != blank -%}
      <div class="SectionFooter">
        <a href="{{ section.settings.button_link }}" class="Button Button--primary">{{ section.settings.button_text | escape }}</a>
      </div>
    {%- endif -%}
  </div>
</section>

{% schema %}
{
  "name": "Collection Blog posts",
  "class": "shopify-section--bordered",
  "max_blocks": 3,
  "settings": [
    {
      "type": "text",
      "id": "subheading",
      "label": "Sub-heading"
    },
    {
      "type": "text",
      "id": "title",
      "label": "Heading",
      "default": "Blog posts"
    },
    {
      "type": "checkbox",
      "id": "show_category",
      "label": "Show article category",
      "info": "The first article's tag is used as the main category.",
      "default": false
    },
    {
      "type": "url",
      "id": "button_link",
      "label": "Button link"
    },
    {
      "type": "text",
      "id": "button_text",
      "label": "Button text",
      "default": "View all articles"
    }
  ],
  "blocks": [
    {
      "type": "article",
      "name": "Article",
      "settings": [
        {
          "type": "article",
          "id": "article_1",
          "label": "Article 1"
        },
        {
          "type": "article",
          "id": "article_2",
          "label": "Article 2"
        },
        {
          "type": "article",
          "id": "article_3",
          "label": "Article 3"
        }
      ]
    },
    {
      "type": "blog",
      "name": "Blog",
      "settings": [
        {
          "type": "blog",
          "id": "blog",
          "label": "Collection Blog"
        }
      ]
    }
  ],
  "presets": [
    {
      "category": "Blog",
      "name": "Blog posts",
      "settings": {},
      "blocks": [
        {
          "type": "blog",
          "settings": {
            "blog": "news"
          }
        }
      ]
    }
  ]
}
{% endschema %}

2. Añadir Section a collection.liquid
{% section ‘collection-blog-posts.liquid’ %}

3. En el Customizer de la plantilla collections ya se mostrara la nueva sección. Ahora solo tendremos que:

Add block > Article (sin seleccionar articulos)

*Para mostrar simplemente los últimos artículos > Add block > Blog (seleccionar categoría blog a mostrar)

4. Crear Metafields desde Settings

NAMESPACE AND KEY

custom_blog.article_1

custom_blog.article_2

custom_blog.article_3

Single line text > One value

5. Añadir handle posts en cada collection

Importante escribir handle desde categoria-blog/nombre-articulo sin / al principio

AUTOR

ÚLTIMOS ARTÍCULOS

¡Bienvenido al artículo de hoy! Dónde voy a recapitular las prácticas que más nos han funcionado para mejorar el SEO¿Qué es el SEO? SEO, o…

🔎 ¿Segmentas tu productos en tu estrategia de visibilidad en Google ShoppingGoogle Shopping es un servicio ofrecido por Google que permite a los usuarios buscar…

La segmentación de productos en Google Ads emerge como una estrategia crucial para maximizar el rendimiento de las campañas publicitarias y mejorar la rentabilidad de…

Suscríbete a la Newsletter

Recibe las últimas noticias y aprende de SEO y Google ADS

¿TE HA GUSTADO? SI ES QUE SÍ COMPARTE PARA TENER MÁS FEEDBACK ;)