Issue with displaying images in testimonials using {% schema %} and Liquid

Topic summary

A developer is experiencing issues displaying images in a Shopify testimonials section built with Liquid and schema blocks. The section schema includes multiple image pickers (imageone through imagesix) for popup images.

The Problem:

  • Images are not rendering correctly
  • Output shows a broken upload:// URL instead of the actual image
  • The original code attempts to access block.imageone directly without proper context

The Solution:

  • The Liquid code needs to loop through section.blocks to access block settings
  • Images should be accessed via block.settings.imageone (not block.imageone)
  • Use image_url filter with width/height parameters instead of deprecated img_url: 'master'
  • Wrap the image rendering in a {% for block in section.blocks %} loop

Status: A corrected code snippet was provided showing the proper structure for iterating through blocks and accessing image settings.

Summarized with AI on October 25. AI used: claude-sonnet-4-5-20250929.
{% schema %}
{
"name": "Testimonials",
"tag": "section",
"class": "testimonials",
"settings": [
{
"type": "text",
"id": "title",
"label": "Testimonials Heading"
}
],
"blocks": [
{
"name": "Slide",
"type": "slide",
"settings": [
{
"type": "image_picker",
"id": "image",
"label": "Image"
},
{
"type": "video",
"id": "video",
"label": "Video"
},
{
"type": "image_picker",
"id": "imageone",
"label": "Image Popup 1"
},
{
"type": "image_picker",
"id": "imagetwo",
"label": "Image Popup 2"
},
{
"type": "image_picker",
"id": "imagethree",
"label": "Image Popup 3"
},
{
"type": "image_picker",
"id": "imagefour",
"label": "Image Popup 4"
},
{
"type": "image_picker",
"id": "imagefive",
"label": "Image Popup 5"
},
{
"type": "image_picker",
"id": "imagesix",
"label": "Image Popup 6"
}
]
}
],
"presets": [
{
"name": "Testimonials",
"settings": {
"title": "Our Testimonials"
},
"blocks": [
{
"type": "slide"
},
{
"type": "slide"
}
]
}
]
}
{% endschema %}

{% capture testimonialsImage %}
              <img src="{{ block.imageone | img_url: 'master' }}" alt="Image One"
              alt="Testimonial Image {% increment variablename %}" width="auto" height="auto"
              class="mb-2 set-heading-img-tes" style="border-radius: 1.8rem; object-fit: contain;">
            {% endcapture %} 

      {{ testimonialsImage }}

image not get

output this ways


no-image

{% for block in section.blocks %}
  {% capture testimonialsImage %}
    <img
      src="{{ block.settings.imageone | image_url: width: 300, height: 300 }}"
      alt="Image One"
      alt="Testimonial Image"
      width="auto"
      height="auto"
      class="mb-2 set-heading-img-tes"
      style="border-radius: 1.8rem; object-fit: contain;"
    >
  {% endcapture %}
  {{ testimonialsImage }}
{% endfor %}