پرش به محتوا
تصاویر و رسانه

سایز تصویر محصول در ووکامرس: سه اندازه و روش واقعی تغییرشان

ببینید کدام دو تا از سه اندازه تصویر محصول ووکامرس واقعاً قابل ویرایش‌اند، چرا بندانگشتی‌های فروشگاه بد برش می‌خورند و چطور همه را بازسازی کنید

منتشرشده

ووکامرس برای هر عکس محصولی که آپلود می‌کنید سه اندازه تصویر می‌سازد و فقط دو تای آن‌ها در پیشخوان وردپرس قابل ویرایش‌اند. woocommerce_thumbnail تصویر شبکه فهرست محصولات است، woocommerce_single تصویر بزرگ صفحه محصول است، و woocommerce_gallery_thumbnail نوار بندانگشتی‌های کوچک زیر آن. آن‌ها را از مسیر نمایش > سفارشی‌سازی > ووکامرس > تصاویر محصول تغییر می‌دهید — و اگر آن پنل یک منوی کشویی برش نشان می‌دهد اما کادر عرض ندارد، قالب شما عمداً عرض‌ها را در کد قفل کرده است.

سه اندازه

نام اندازهکجا نمایش داده می‌شودبرشقابل ویرایش در سفارشی‌ساز
woocommerce_thumbnailصفحه فروشگاه، شبکه دسته‌ها، محصولات مرتبط، فروش مکملبه‌طور پیش‌فرض برش سخت مربعیعرض و نسبت
woocommerce_singleتصویر اصلی در صفحه تک‌محصولبدون برش — نسبت تصویر اصلی حفظ می‌شودفقط عرض
woocommerce_gallery_thumbnailنوار کوچک زیر تصویر اصلی محصولبرش سخت مربعیخیر

این‌ها روی اندازه‌های استاندارد وردپرس سوار می‌شوند. یک عکس محصول معمولاً thumbnail و medium و medium_large و large را می‌سازد، به‌علاوه سه اندازه ووکامرس و احتمالاً اندازه‌های اضافه‌ای که قالب شما با add_image_size ثبت کرده. این یعنی تعداد زیادی فایل به ازای هر آپلود، و دلیل اینکه ورود ۳۰۰ محصول این‌قدر طول می‌کشد.

بندانگشتی گالری همان است که مردم را غافلگیر می‌کند: هیچ کنترلی در پیشخوان ندارد. روی نصب پیش‌فرض یک مربع کوچک است، از قدیم ۱۰۰ پیکسل، و همان اندازه‌ای است که بیشترین احتمال دارد روی صفحه رتینا تار به نظر برسد، چون فایل فیزیکی‌اش واقعاً ریز است.

تنظیمات واقعاً کجا هستند

مسیر نمایش > سفارشی‌سازی > ووکامرس > تصاویر محصول سه کنترل به شما می‌دهد:

  • عرض تصویر اصلی — عرض woocommerce_single. ارتفاع خودکار است، پس نسبت تصویر اصلی حفظ می‌شود.
  • عرض بندانگشتی — عرض woocommerce_thumbnail.
  • برش بندانگشتی1:1 (مربع، پیش‌فرض)، Custom (نسبتی مثل ۴:۳ را خودتان می‌نویسید)، یا Uncropped.

به چیزی که نیست دقت کنید: کادر ارتفاع برای بندانگشتی فهرست وجود ندارد، چون ارتفاع از نسبت برش به دست می‌آید. و برای بندانگشتی گالری اصلاً هیچ چیزی نیست.

قبل از تغییر هر چیزی، خوب است دقیقاً ببینید یک فایل چه نسخه‌های مشتقی تولید می‌کند — یک عکس محصول واقعی را در ابزار اندازه‌های تصویر وردپرس بیندازید و فهرست کامل را بگیرید، از جمله اینکه آیا منبع شما به‌اندازه کافی بزرگ هست که هر اندازه را بدون بزرگ‌نمایی پر کند.

چرا تصاویر فهرست محصولات شما اشتباه به نظر می‌رسند

بندانگشتی فهرست برش سخت مربعی می‌خورد. برش سخت یعنی ووکامرس یک مربع از مرکز عکس شما برمی‌دارد و بقیه را دور می‌ریزد — نه حاشیه سیاه اضافه می‌کند و نه تصویر را له می‌کند. یک عکس محصول ۲۰۰۰ در ۱۲۰۰ تبدیل به یک تکه ۱۲۰۰ در ۱۲۰۰ از وسط می‌شود و بعد کوچک می‌شود.

برای یک بطری که دقیقاً وسط کادر با حاشیه اطرافش عکاسی شده، این خوب است. برای این‌ها فاجعه است:

  • محصولات بلند (اسکی، کابل، میله پرده) — فقط یک‌سوم وسط را می‌بینید و بس
  • ترکیب‌بندی‌های خارج از مرکز — محصول به لبه کادر می‌رود و بریده می‌شود
  • عکس‌هایی که سوژه کادر را لبه‌تا‌لبه پر می‌کند — بالا و پایین قطع می‌شود
  • عکس‌های لایف‌استایل با محصول در یک گوشه

توصیه رایج این است که «برش را روی بدون برش بگذارید». این جواب می‌دهد، اما درباره هزینه‌اش صادق باشید: بدون برش یعنی هر بندانگشتی نسبت خودش را نگه می‌دارد، پس شبکه‌ای از عکس‌های با جهت‌های مختلف بصری ناهموار می‌شود و سطرها دیگر با هم تراز نمی‌مانند، مگر اینکه CSS قالب شما ارتفاع متغیر را مدیریت کند. بیشتر قالب‌ها مربع فرض می‌کنند.

راه‌حل بهتر، اگر از پسش برمی‌آیید، در خود منبع است: روی عکس‌های محصول مربعی استاندارد شوید، با محصول در مرکز و حاشیه یکنواخت. آن‌وقت یک برش سخت مربعی عملاً هیچ کاری نمی‌کند و همه چیز پایین‌دست قابل پیش‌بینی می‌شود. تغییر تنظیم برش، دور زدن مشکل است؛ تصاویر منبع یکدست، راه‌حل واقعی‌اند.

وقتی قالب عرض‌ها را قفل می‌کند

اگر پنل تصاویر محصول شما فقط برش را ارائه می‌دهد، قالب شما هنگام ثبت پشتیبانی از ووکامرس عرض‌های ثابتی را اعلام کرده است:

add_theme_support( 'woocommerce', array(
    'single_image_width'    => 800,
    'thumbnail_image_width' => 400,
) );

وقتی قالبی این مقادیر را پاس می‌دهد، ووکامرس کنترل‌های عرض را از سفارشی‌ساز حذف می‌کند و فقط نسبت را نگه می‌دارد. این نه باگ است و نه خصومت قالب — CSS چیدمان محصول قالب دقیقاً بر اساس همان عرض‌های پیکسلی ساخته شده، و اجازه تغییرشان شبکه را خراب می‌کرد.

می‌توانید از functions.php یک قالب فرزند با فیلتر مخصوص هر اندازه بازنویسی‌شان کنید:

add_filter( 'woocommerce_get_image_size_single', function ( $size ) {
    $size['width']  = 1000;
    $size['height'] = '';
    $size['crop']   = 0;
    return $size;
} );

add_filter( 'woocommerce_get_image_size_gallery_thumbnail', function ( $size ) {
    $size['width']  = 150;
    $size['height'] = 150;
    $size['crop']   = 1;
    return $size;
} );

همین الگو برای woocommerce_get_image_size_thumbnail هم کار می‌کند. این تنها راه تغییر بندانگشتی گالری هم هست، چون هیچ رابط کاربری ندارد.

هزینه واقعی، رک و راست: بازنویسی یک عرض قفل‌شده یعنی فایلی که ووکامرس می‌سازد دیگر با انتظار CSS قالب نمی‌خواند. معمولاً تصویر فقط در مرورگر مقیاس می‌شود و خوب به نظر می‌رسد، چون حالا از کادرش بزرگ‌تر است. گاهی قالب یک ظرف با ارتفاع ثابت دارد و شما حاشیه سیاه یا سرریز می‌گیرید. قبل از بازسازی ۲٬۰۰۰ محصول، روی یک محصول تست کنید.

تغییر اندازه یعنی بازسازی

هر تنظیم اندازه فقط روی آپلودهای جدید اثر دارد. محصولات موجود همان فایل‌هایی را سرو می‌کنند که هنگام آپلودشان ساخته شده بود، پس تا وقتی بازسازی نکنید هیچ تغییر قابل‌مشاهده‌ای رخ نمی‌دهد.

ووکامرس هنگام ذخیره سفارشی‌ساز یک بازسازی پس‌زمینه راه می‌اندازد. روی یک فهرست کوچک همین کافی است. روی فهرست بزرگ به اجرای مطمئن WP-Cron وابسته است که در فروشگاه‌های کم‌ترافیک اغلب اتفاق نمی‌افتد، و آخرش یک کتابخانه نیمه‌بازسازی‌شده تحویل می‌گیرید. به‌جایش خودتان اجرایش کنید:

wp media regenerate --yes

برای بازسازی فقط تصاویر محصول:

wp media regenerate --yes --post_type=product

اگر می‌خواهید کار پس‌زمینه سر راهتان نباشد تا دستی انجامش دهید:

add_filter( 'woocommerce_background_image_regeneration', '__return_false' );

دو کاری که بازسازی انجام نمی‌دهد. فایل‌های قدیمی را حذف نمی‌کند — پوشه آپلودها هر نسخه بی‌استفاده از تنظیمات قبلی را نگه می‌دارد و بزرگ‌تر می‌شود. و نمی‌تواند اندازه‌ای بزرگ‌تر از منبع شما بسازد، چون وردپرس بزرگ‌نمایی نمی‌کند. اگر عرض تصویر اصلی را روی ۱۲۰۰ بگذارید ولی عکس‌های محصولتان ۸۰۰ پیکسل عرض دارند، هیچ فایل ۱۲۰۰ پیکسلی ساخته نمی‌شود؛ مرورگر یک فایل ۸۰۰ پیکسلی می‌گیرد و کشش می‌دهد، و srcset هم چیز بهتری برای ارائه ندارد.

اندازه‌ای که واقعاً باید آپلود کنید

هدف را تصاویر منبع مربعی با حدود دو برابر بزرگ‌ترین عرض تنظیم‌شده‌تان بگذارید — ۱۲۰۰ در ۱۲۰۰ برای تصویر اصلی ۶۰۰ پیکسلی، و ۱۶۰۰ در ۱۶۰۰ اگر قالبتان از ۸۰۰ پیکسل استفاده می‌کند. این نمایشگرهای رتینا ۲x را پوشش می‌دهد و به وردپرس پیکسل کافی می‌دهد تا هر نسخه مشتق را بدون بزرگ‌نمایی بسازد. همه محصولات را با ابعاد یکسان نگه دارید تا شبکه یکدست بماند.

هنوز گیر کرده‌اید؟

اگر اندازه‌ها درست تنظیم شده‌اند، بازسازی کرده‌اید و باز هم یک محصول اشتباه به نظر می‌رسد، تصویر را در تب جدید باز کنید و نام فایل را بخوانید. پسوند ابعادی که با هیچ‌کدام از اندازه‌های تنظیم‌شده شما نمی‌خواند یعنی چیز دیگری آن را ثبت کرده. نبودن هیچ پسوندی یعنی ووکامرس به فایل اندازه کامل عقب‌نشینی کرده، که تقریباً همیشه یعنی منبع برای اندازه‌ای که خواسته‌اید خیلی کوچک بوده. آن فایل منبع را در ابزار اندازه‌های تصویر بیندازید و آنچه وردپرس باید بسازد را با آنچه مرورگر واقعاً بارگذاری کرده مقایسه کنید — وقتی این دو نخواندند، معمولاً یک افزونه بهینه‌ساز یا یک تغییردهنده اندازه تصویر در CDN بینشان نشسته است.

FAQ

پرسش‌ها

سه اندازه تصویر محصول در ووکامرس کدام‌اند؟

ووکامرس اندازه woocommerce_thumbnail را برای فهرست محصولات و شبکه فروشگاه، اندازه woocommerce_single را برای تصویر بزرگ صفحه محصول، و اندازه woocommerce_gallery_thumbnail را برای نوار بندانگشتی‌های کوچک زیر تصویر اصلی ثبت می‌کند. هر عکس محصولی که آپلود کنید هر سه را می‌سازد، آن هم روی اندازه‌های استاندارد وردپرس مثل thumbnail و medium و medium_large و large.

سایز تصویر محصول ووکامرس را از کجا تغییر بدهم؟

به نمایش، سپس سفارشی‌سازی، سپس ووکامرس، سپس تصاویر محصول بروید. یک عرض تصویر اصلی، یک عرض بندانگشتی و یک انتخاب برش بندانگشتی بین ۱:۱، سفارشی یا بدون برش می‌گیرید. اگر کادرهای عرض نیستند و فقط برش نمایش داده می‌شود، قالب فعال شما عرض‌ها را در کد ثابت کرده و سفارشی‌ساز عمداً آن‌ها را پنهان می‌کند.

چرا تصاویر فهرست محصولات من بد برش خورده‌اند؟

بندانگشتی فهرست به‌طور پیش‌فرض برش سخت مربعی می‌خورد و از مرکز عکس بریده می‌شود. هر عکس محصولی که سوژه‌اش خارج از مرکز باشد یا کادر را لبه‌تا‌لبه پر کند، دو سرش را از دست می‌دهد. برش بندانگشتی را روی بدون برش بگذارید، یا عکس‌ها را دوباره بگیرید و با حاشیه یکنواخت پد کنید تا یک برش مربع مرکزی همچنان کل محصول را در بر بگیرد.

بعد از تغییر اندازه‌های تصویر ووکامرس باید بندانگشتی‌ها را بازسازی کنم؟

بله. تغییر تنظیمات فقط چیزی را که برای آپلودهای آینده ساخته می‌شود عوض می‌کند، پس هر محصول موجود تا وقتی فایل‌هایش را بازسازی نکنید همان فایل‌های قدیمی را سرو می‌کند. ووکامرس هنگام ذخیره سفارشی‌ساز یک بازسازی پس‌زمینه شروع می‌کند، اما روی فهرست‌های بزرگ کندتر و کم‌اعتمادتر از این است که خودتان بازسازی را با WP-CLI اجرا کنید.

چرا نمی‌توانم عرض تصویر اصلی را در قالبم عوض کنم؟

قالب هنگام اعلام پشتیبانی از ووکامرس عرض‌های ثابتی را پاس داده و این به ووکامرس می‌گوید آن کنترل‌ها را از سفارشی‌ساز حذف کند. این عمدی است، چون CSS قالب دقیقاً بر اساس همان عرض‌های پیکسلی ساخته شده. می‌توانید با یک فیلتر در قالب فرزند بازنویسی‌شان کنید، اما ممکن است چیدمان محصول بعدش به اصلاحات CSS نیاز پیدا کند.

تصاویر محصول ووکامرس چه سایزی باید باشند؟

تصاویر منبع را مربعی و تقریباً دو برابر بزرگ‌ترین عرض نمایشتان آپلود کنید، یعنی ۱۲۰۰ در ۱۲۰۰ پیکسل برای تصویر اصلی ۶۰۰ پیکسلی، و همه محصولات را یکدست نگه دارید. وردپرس هیچ‌وقت تصویر را بزرگ‌نمایی نمی‌کند، پس منبعی کوچک‌تر از عرض تنظیم‌شده شما هیچ فایلی در آن اندازه تولید نمی‌کند و مرورگر به‌جایش یک فایل کوچک‌تر را کش می‌آورد.