You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware6:如何获取缩略图实际宽高?模板添加图片宽高属性需求

在Shopware6模板中获取图片缩略图的实际尺寸

要拿到缩略图的真实渲染尺寸(而非预设的固定尺寸),核心是直接获取实际生成的缩略图实体的尺寸属性,而不是用Media对象本身的width/height(这两个确实是预设值)。

具体实现步骤

在Twig模板中,通过Media对象的getThumbnail()方法,传入你的缩略图预设名称,就能拿到对应预设下实际生成的缩略图信息:

{# 替换成你实际使用的缩略图预设名称,比如"product_detail"、"listing"等 #}
{% set targetThumbnail = media.getThumbnail('product_detail') %}

{% if targetThumbnail %}
    {# 使用实际生成的缩略图尺寸 #}
    <img 
        src="{{ targetThumbnail.url }}" 
        width="{{ targetThumbnail.width }}" 
        height="{{ targetThumbnail.height }}" 
        alt="{{ media.alt|default('') }}"
    >
{% else %}
    {#  fallback逻辑:如果缩略图未生成,用原图尺寸或其他处理 #}
    <img 
        src="{{ media.url }}" 
        width="{{ media.width }}" 
        height="{{ media.height }}" 
        alt="{{ media.alt|default('') }}"
    >
{% endif %}

原理说明

Shopware生成缩略图时,会根据原图的宽高比例自动调整,不会强制拉伸到预设的固定尺寸。比如你预设1200×1200,原图是1200×700的横向图,生成的缩略图实际就是1200×700,这个真实尺寸会存在ThumbnailEntity对象里,通过getThumbnail()就能获取到。

注意事项

  • 确保传入的预设名称和你在Shopware后台配置的缩略图预设名称完全一致
  • 新上传的图片可能需要等待缩略图生成任务完成,所以模板里要加if targetThumbnail的判断,避免报错

内容的提问来源于stack exchange,提问作者Gitte Wange Olrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:45:05