Making Image on Homepage Clickable (Attaching a Link to it)

Topic summary

Goal: Make the homepage hero/image blocks clickable in Shopify (mainly Debut), linking to a collection or URL.

Working approach (Debut):

  • Add a URL setting to the section schema (JSON) after the existing “button_label” entry: {“type”:“url”,“id”:“image_link”,“label”:“Image link”}.
  • Wrap the hero content (or the image) with in hero.liquid. For Image with Text (feature-row.liquid), use section.settings.image_link; for Text columns with images (feature-columns.liquid), use block.settings.image_link.

Common issues and fixes:

  • Invalid JSON: place the new field inside the {% schema %} … {% endschema %} block, with correct commas and quotes, typically right after “button_label”.
  • Link saved but not working or redirects to homepage: use the correct scope (section vs block) matching the file/section.
  • Image becomes oversized/zoomed after wrapping: wrap the parent wrapper/div (above the ) instead of the itself to preserve sizing.

Theme notes:

  • Debut: multiple confirmations and file-specific examples (hero.liquid, feature-row.liquid, feature-columns.liquid). A slideshow tutorial was referenced.
  • Minimal/Boundless/Supply: users asked; no confirmed final fix reported.

Status: Partially resolved for Debut with code examples; outstanding issues remain for other themes and some layouts. Screenshots were used to illustrate code placement.

Summarized with AI on January 13. AI used: gpt-5.

Hi everyone,

I’m looking to make the main image on my homepage (image with text overlay) clickable so that I can attach a link to it and it will take customers to a collection page from the homepage.

I’m currently using the Debut theme.

Any suggestions would be greatly appreciated!

Thanks!

2 Likes

Hello mhalfya,

Go to Online Store-> Themes → Edit code->Sections->hero.liquid
Add this schema:

 {
          "type": "url",
          "id": "image_link",
          "label": "Image link"
        },

This will give you backend setting to add link to that image.

Search this code:

 <div class="hero__inner">
        <div class="page-width text-center">
          {%- if section.settings.title != blank -%}
            <h2 class="h1 mega-title{% if section.settings.text_size == 'large' %} mega-title--large{% endif %}">{{ section.settings.title | escape }}</h2>
          {%- endif -%}
          {%- if section.settings.text != blank -%}
            <div class="rte-setting mega-subtitle{% if section.settings.text_size == 'large' %} mega-subtitle--large{% endif %}">{{ section.settings.text }}</div>
          {%- endif -%}
          {%- if section.settings.button_label != blank and section.settings.button_link != blank -%}
            <a href="{{ section.settings.button_link }}" class="btn hero__btn">
              {{ section.settings.button_label | escape }}
            </a>
          {%- endif -%}
        
        </div>
      </div>

Replace this code with :

<a href="{{ section.settings.image_link }}">
      <div class="hero__inner">
        <div class="page-width text-center">
          {%- if section.settings.title != blank -%}
            <h2 class="h1 mega-title{% if section.settings.text_size == 'large' %} mega-title--large{% endif %}">{{ section.settings.title | escape }}</h2>
          {%- endif -%}
          {%- if section.settings.text != blank -%}
            <div class="rte-setting mega-subtitle{% if section.settings.text_size == 'large' %} mega-subtitle--large{% endif %}">{{ section.settings.text }}</div>
          {%- endif -%}
          {%- if section.settings.button_label != blank and section.settings.button_link != blank -%}
            <a href="{{ section.settings.button_link }}" class="btn hero__btn">
              {{ section.settings.button_label | escape }}
            </a>
          {%- endif -%}
        
        </div>
      </div>
      </a>
6 Likes

Hi there!

Thank you so much for the response!

Where should I enter the schema you gave me? I believe I entered it in the wrong area because it’s displaying the code below the images and it isn’t giving me the option to add the link.

Thanks again for your help! :slight_smile:

Hello mhalfya,

Search this schema:

{
      "type": "text",
      "id": "button_label",
      "label": {
        "da": "Knapetiket",
        "de": "Button-Etikett",
        "en": "Button label",
        "es": "Etiqueta de botón",
        "fi": "Painikkeen merkintä",
        "fr": "Texte du bouton",
        "hi": "बटन लेबल",
        "it": "Etichetta pulsante",
        "ja": "ボタンラベル",
        "ko": "버튼 레이블",
        "ms": "Label butang",
        "nb": "Knappetikett",
        "nl": "Knoplabel",
        "pt-BR": "Etiqueta do botão",
        "pt-PT": "Etiqueta do botão",
        "sv": "Knappetikett",
        "th": "ป้ายกำกับปุ่ม",
        "zh-CN": "按钮标签",
        "zh-TW": "按鈕標籤"
      }
    },

Add below schema after that:

{
          "type": "url",
          "id": "image_link",
          "label": "Image link"
        },
2 Likes

That worked perfectly! Thank you so much! :slight_smile:

I am trying to do the same thing, add image link to “Image with Text” section in debut theme. I do not see the place to add the schema you gave. It is saying this,

Error: Invalid JSON in tag ‘schema’. Can you please help me?

This is what my screen looks like.

Hi,

I’ve successfully added to the schema and can now see the option to add an Image Link (woo!).

However, I select a collection for the link and save but no changes have taken place on the live site. The link is saved and showing but is not appearing as an option when I hover over the image.

Any help is much appreciated.

Chris

1 Like

Hey i have tried this and it worked but it makes my image very large and bigger than it worse before and much more zoomed in. How do i fix this?

1 Like

Im experiencing the same issue. I followed the steps on replacing the code area but now my photo is way larger than it was before and I cant edit the size. Its very zoomed in. Any help on how to fix this??

We have successfully added the codes, however Link placeholder is not showing in the page section editor. Where can we place our url? We wanted to make images below clickable.

Hi there,

We have successfully added the codes in the feature-columns.liquid section, however it ruins the homepage layout and the url attached is not working instead we are redirected to homepage when clicked.

I am trying to do the same thing, add image link to “Image with Text” section in Minimal theme, but I can’t find hero.liqud can someone help please :slightly_smiling_face:

I’m having this exact issue. Was this ever resolved?

I was able to make the image header in a slideshow clickable by following this tutorial for the debut theme. https://youtu.be/WieMrvXDFrg

Hi!
Did you end up figuring this out?
I too was able to add a picture link but when I do nothing changes!

Actualy solved here…

First add the code to the schema as several people have commented. This creates the ability to link on the theme template.

Next add further up in the same theme file. For Image with Text, this is the feature-row.liquid file. My code is shown below. In practise this creates the ‘link’ but will doesn’t yet have an end point so will loop you back to the homepage.

{% capture image_layout %}
1 Like

Hi Chris, I’m experiencing the same issue! If you found a solution can you please let me know! Thank you!!

Hi, have any of you figured out the solution to this? The link works but it is very zoomed in. Thank you for all the help in advance

I managed to get an image link field with this code. Thought that was it but after entering URL the image is still not clickable. Any thoughts would be super helpful. Thanks