تعریف سایزهای اختصاصی تصاویر در وردپرس (Custom Image Size)
با تابع `add_image_size('custom-name', 800, 450, true);` سایز جدیدی با برش سخت ایجاد کرده و آن را در قالب با `the_post_thumbnail('custom-name')` فراخوانی کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<?php
/**
* ثبت ابعاد اختصاصی تصاویر متناسب با طراحی قالب
*/
function bisco_setup_custom_image_sizes() {
// سایز کارت وبلاگ با نسبت تصویر ۱۶:۹ و برش دقیق
add_image_size( 'bisco-blog-card', 640, 360, true );
// سایز اسلایدر بزرگ صفحه اصلی
add_image_size( 'bisco-hero-banner', 1200, 500, array( 'center', 'center' ) );
}
add_action( 'after_setup_theme', 'bisco_setup_custom_image_sizes' );
// نمایش سایز جدید در ویرایشگر وردپرس برای انتخاب دستی نویسندگان
add_filter( 'image_size_names_choose', function( $sizes ) {
return array_merge( $sizes, array(
'bisco-blog-card' => 'کارت وبلاگ (۶۴۰ در ۳۶۰)',
) );
} );
کد را کجا قرار دهیم؟ (Placement Guide)
کد را در functions.php قرار داده و در قالب از تابع `the_post_thumbnail('bisco-blog-card')` استفاده کنید.
این کد چگونه کار میکند؟ (How it Works)
هنگام آپلود هر عکس جدید، وردپرس نسخههای برشخورده با این ابعاد را بر اساس مختصات تعیین شده تولید و ذخیره میکند.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
زمانی که نیاز به ابعاد مشخصی برای تصویر شاخص مقالات، بنرها و اسلایدرها بدون افت کیفیت دارید.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
اگر هاست شما فضای ذخیرهسازی بسیار محدودی دارد و نیازی به سایزهای گوناگون ندارید.
پیشنیازهای اجرا
پس از اضافه کردن، برای تصاویر قبلی باید افزونه بازتولید تصاویر (Regenerate Thumbnails) را یکبار اجرا کنید.
نحوه تست و اطمینان از عملکرد
یک عکس جدید آپلود کرده و در ویرایشگر اندازه آن را روی کارت وبلاگ تنظیم کنید یا خروجی html تگ img را بررسی نمایید.
نحوه بازگردانی سریع (Rollback)
کد را حذف کنید.
خطاهای رایج و راهحل رفع
فراموش کردن این که سایز جدید فقط روی عکسهای بعدی اعمال میشود و برای عکسهای گذشته نیاز به regenerate است.
ملاحظات و نکات امنیتی
فاقد ریسک امنیتی.
تاثیر بر سرعت و پرفورمنس
جلوگیری از لود عکسهای عظیم 4K در ابعاد کوچک که پهنای باند را هدر میدهند و زمان LCP را تخریب میکنند.