با هر بار بارگذاری تصویر از طریق کتابخانه رسانه وردپرس، به صورت خودکار نسخههای متنوع و متعدد آن، ایجاد و نگهداری میگردد و جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس یک امر مهم در مدیریت سایت می باشد. در صورتی که سایتی از این ابعاد استفاده نکند، فایلهای اضافی فضای ذخیرهسازی را اشغال کرده و حجم بکاپ های سرور را افزایش میدهند.
در این راهنما، به بررسی ابعاد پیشفرض تصاویر، توضیح دلایل ایجاد آنها، نشان دادن روش شناسایی اندازههای اضافی و ارائه قطعه کدهایی برای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس، پرداخته میشود.
ابعاد پیشفرض تصاویر در وردپرس
جدول زیر شامل تمامی ابعاد پیشفرض تصاویر در وردپرس میباشد:
نام |
اندازه پیشفرض |
توضیحات |
thumbnail |
۱۵۰×۱۵۰ |
اندازه کوچک تعیینشده توسط کاربر. |
medium |
۳۰۰×۳۰۰ |
اندازه متوسط تعیینشده توسط کاربر. |
medium_large |
۰*۷۶۸ |
برای نمایشهای پاسخگو و HDPI. |
large |
۱۰۲۴×۱۰۲۴ |
اندازه بزرگ تعیینشده توسط کاربر. |
۱۵۳۶×۱۵۳۶ |
۱۵۳۶×۱۵۳۶ |
برای نمایشهای رتینا/HDPI. |
۲۰۴۸×۲۰۴۸ |
۲۰۴۸×۲۰۴۸ |
برای نمایشهای بزرگ و با وضوح بالا. |
scaled- |
۲۵۶۰~ |
زمانی که تصویر اصلی بزرگتر از آستانه اندازه بزرگ است، وردپرس این نسخه مقیاسشده را ایجاد میکند. |
full |
– |
بزرگترین اندازه ممکن. تصویر اصلی یا مقیاسشده. |
جدول(۱)
به وضوح قابل مشاهده است که تعداد قابل توجهی از ابعاد موجود میباشند. این امر نشان میدهد که هر بار بارگذاری یک تصویر، ممکن است تا هفت نسخه اضافی از آن را در سرور ذخیره کند. این موضوع تنها شامل اندازههای پیشفرض هسته وردپرس میباشد و ابعاد اضافی تعریفشده توسط قالبها و افزونهها در نظر گرفته نشدهاند. وجود ابعاد مختلف و زیاد برای تصاویر، باعث احساس نیاز برای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس می باشد.
ابعاد تصاویر ایجاد شده توسط قالبها و افزونهها
اکثر قالبهای کلاسیک وردپرس (به جزء قالبهای مبتنی بر بلاک) از ابعاد thumbnail، medium و large پیشفرض استفاده نمیکنند. این قالبها معمولاً اندازههای مخصوص به خود را ثبت مینمایند که با طراحی و چیدمان قالب هماهنگتر است.
افزونهها نیز قادر به ثبت ابعاد جدید میباشند. این امر در افزونههایی که برای نمایش پستها به کار میروند، رایج است. نتیجه آن، ایجاد تعداد بیشتری از ابعاد تصاویر توسط سایت است که منجر به افزایش فضای سرور و حجم فایلهای پشتیبانگیری میگردد. پیشنهاد میشود مستندات قالب و تمامی افزونههای مورد استفاده به دقت مطالعه شوند تا از ایجاد تصویر با اندازه های مختلف جلوگیری شود. اکثر قالبها و افزونهها، گزینههایی برای تغییر یا غیرفعال کردن ابعاد اضافی و مدیریت اندازه تصاویر در وردپرس ارائه میدهند.
چرا تصاویر با ابعاد مختلف ایجاد میشوند؟
قبل ارائه روشهای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس، ضروری است که به بررسی دلایل اصلی این امر پرداخته شود:
- زمان لود سریعتر: تصاویر با اندازه کوچکتر، سرعت بارگذاری بیشتری دارند که منجر به بهبود تجربه کاربری میگردد.
- تصاویر واکنش گرا: فراهم سازی اندازههای جایگزین برای نمایش در ابعاد مختلف صفحه نمایش، انعطافپذیری بیشتری را جهت طراحی سایت ایجاد میکند.
- ثبات: حفظ یکنواختی در ابعاد تصاویر شاخص، هماهنگی بصری سایت را تضمین میکند.
- نمایشگرهای با وضوح بالا: ارائه تصاویر جایگزین برای نمایشگرهای با وضوح بالا، کیفیت بصری بهتری را فراهم میآورد.
- تصاویر بندانگشتی: ایجاد ابعاد جایگزین برای استفاده در بخشهای مختلف سایت یا عناصر خاص قالب و افزونهها، تنوع و انعطافپذیری بیشتری را فراهم میکند.
- عملکرد سرور: حالتهای بهینه مانند -scaled که به منظور جلوگیری از لود زیاد سرور کاربرد دارند، عملکرد بهتر را تضمین میکنند.
تنظیمات رسانه در پنل مدیریت وردپرس
با دسترسی به پنل مدیریت وردپرس و مسیر “تنظیمات > رسانه”، گزینههایی برای تنظیم سه اندازه اصلی تصاویر (Thumbnail، Medium، Large) در اختیارتان قرار خواهد گرفت. این تنظیمات امکان سفارشیسازی ابعاد پیشفرض را برای تصاویر آپلود شده فراهم میآورد.
تصویر(۱)
تنظیم عرض و ارتفاع تمامی فیلدها روی ۰، از تولید خودکار ابعاد مختلف تصویر توسط وردپرس جلوگیری میکند. این اولین اقدامی است که پس از نصب وردپرس انجام میشود و برای بیشتر سایتها توصیه میگردد.
اما این تنها راهحل برای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس نیست. جهت غیرفعالسازی کامل آن، نیاز به استفاده از کدهای خاصی میباشد.
آستانه ابعاد تصویر بزرگ در وردپرس
در وردپرس نسخه ۵.۳.۰، آستانه ابعاد تصویر بزرگ معرفی شد. این آستانه حداکثر عرض یا ارتفاع تصویری است که وردپرس هنگام آپلود، ایجاد میکند. مقدار پیشفرض این آستانه ۲۵۶۰ پیکسل است. اگر تصویری بزرگتر از این آستانه آپلود شود، وردپرس آن را مقیاسدهی کرده و ابعاد اضافی را بر اساس مقدار مجاز ایجاد میکند. ممکن است نیاز به تنظیم یا غیرفعالسازی این آستانه باشد.
غیرفعال کردن آستانه ابعاد تصویر بزرگ
برای جلوگیری از مقیاسدهی تصاویر با ابعاد بزرگ و ایجاد نسخههای اضافی، قطعه کد زیر به کار می رود:
add_filter( 'big_image_size_threshold', '__return_false' );
توجه: آستانه ابعاد تصویر بزرگ، به منظور بهبود عملکرد سرور تعیین شده است و غیرفعالسازی آن می تواند موجب بروز مشکلات عملکردی گردد. در صورتی که اطمینان دارید که تنها تصاویر با ابعاد کوچک آپلود میشوند، غیرفعالسازی این آستانه می تواند کمک کند.
تغییر آستانه اندازه بزرگ تصاویر
تصویر(۲)
برای سایتهایی که نیاز به تصاویر با ابعاد بزرگتری دارند، تنظیم مقدار آستانه امکانپذیر است. جهت تغییر آستانه ابعاد تصویر بزرگ، از قطعه کد زیر استفاده میشود:
add_filter( 'big_image_size_threshold', function( $threshold ) {
return 5000;
});
این تنظیمات به سایتهایی که نیازمند تصاویر با کیفیت و ابعاد بالاتر هستند، اجازه میدهد تا کنترل دقیقتری روی اندازه تصاویر داشته باشند و از مقیاسدهی ناخواسته جلوگیری نمایند. با تغییر آستانه به مقدار دلخواه، اطمینان حاصل میشود که تصاویر بزرگتر بدون ایجاد نسخههای اضافی ذخیره میگردند. این امر میتواند به بهینهسازی فضای ذخیرهسازی و بهبود عملکرد کلی سایت کمک کند.
بررسی ابعاد تعریفشده در سایت
متاسفانه، وردپرس به صورت پیشفرض امکان مشاهده تمامی ابعاد ثبتشده را فراهم نمیآورد و در نتیجه جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس ممکن است دشوار گردد. با استفاده از کدهای زیر میتوان این اندازهها را مشاهده نمود:
روش سریع و ساده
با کپی کردن کد زیر درون فایل functions.php و سپس مشاهده سایت، فهرستی از ابعاد ثبتشده، در بالای سایت نمایش داده میشوند. سپس میتوان این اطلاعات را کپی و در یک فایل متنی ذخیره نمود و کد را حذف کرد.
add_action( 'wp_head', function() {
echo '<pre>';
foreach ( (array) wp_get_registered_image_subsizes() as $size => $dims ) {
$width = $dims['width'] ?? 0;
$height = $dims['height'] ?? 0;
echo "{$size}: {$width}x{$height}\n";
}
echo '</pre>';
});
نمایش ابعاد ثبتشده در پنل مدیریت وردپرس
دسترسی به فهرستی از ابعاد ثبتشده در پنل مدیریت وردپرس، ایدهآل تر است. به این ترتیب، در صورت فعالسازی افزونه جدید یا تغییر قالب، میتوان سریعا بررسی کرد که آیا ابعاد جدیدی تعریف شده است یا خیر. قطعه کد زیر جدولی از تمامی اندازههای تعریفشده را در پایین صفحه تنظیمات > رسانه نمایش میدهد:
add_action( 'admin_init', function() {
add_settings_section(
'dummy_registered_image_sizes_info',
esc_html__( 'Registered Image Sizes', 'text_domain' ),
function() {
echo '<table class="wp-list-table widefat fixed striped">';
echo '<thead><tr><th>' . esc_html__( 'Name', 'text_domain' ) . '</th><th>' . esc_html__( 'Dimensions', 'text_domain' ) . '</th></tr></thead>';
foreach ( (array) wp_get_registered_image_subsizes() as $size => $dims ) {
if ( ! in_array( $size, [ 'thumbnail', 'medium', 'large' ], true ) ) {
$width = $dims['width'] ?? 0;
$height = $dims['height'] ?? 0;
echo "<tr><td><strong>{$size}</strong></td><td>{$width}x{$height}</td>";
}
}
echo '</table>';
},
'media'
);
}, PHP_INT_MAX );
به طور فنی، با این کد یک بخش تنظیمات جدید تعریف میشود اما در واقع هیچ تنظیماتی ثبت نمیگردد. در عوض، callback برای این بخش به صورت یک جدول تنظیم شده که تمامی ابعاد ثبتشده را نمایش میدهد.
جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس
برای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس، قطعه کدهای زیر به کار می رود:
add_filter( 'image_resize_dimensions', '__return_false' );
add_filter( 'intermediate_image_sizes_advanced', '__return_empty_array' );
این قطعه کدها تضمین میکنند که تنها تصویر اصلی در سرور ذخیره شده و از تولید خودکار ابعاد مختلف تصویر جلوگیری گردد.
استفاده از افزونه WP Disable All Image Sizes
این افزونه شامل کدهایی که بالاتر ذکر شد میباشد و به راحتی قابل دانلود و نصب است. وظایف این افزونه عبارتند از:
- غیرفعالسازی آستانه ابعاد تصویر بزرگ.
- بازگشت false برای فیلتر image_resize_dimensions.
- بازگشت آرایه خالی جهت فیلتر intermediate_image_sizes_advanced.
این افزونه نیازی به بروزرسانی ندارد و میتوان آن را از مخزن گیتهاب دانلود نمود.
حذف اندازههای قدیمی تصاویر از سرور
تصویر(۳)
افزودن کدهای جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس، تنها برای تصاویر جدید اعمال میشود. در صورتی که این کد به یک سایت فعال اضافه گردد، ممکن است تصاویر قدیمی که ابعاد آنها تغییر یافته، روی سرور باقی بمانند که نیاز به پاکسازی دارند. در این وضعیت، استفاده از افزونه Force Regenerate Thumbnails توصیه میشود. این افزونه تصاویر را بررسی کرده و ضمن حذف ابعاد قدیمی، مجدداً بر اساس تنظیمات جدید آنها را ایجاد مینماید.
پیش از نصب هر افزونه جدید یا حذف المان های سایت، حتماً از هاست و اطلاعات سایت خود نسخه پشتیبان تهیه کنید.
نتیجهگیری
در این مقاله تلاش شد تا روش های جلوگیری از ایجاد ابعاد اضافی تصاویر در وردپرس بررسی گردد. غیرفعالسازی ابعاد اضافی تصاویر، برای اکثر سایتها بهینهترین راهحل به شمار میرود. مدیریت اندازه تصاویر در وردپرس باعث حفظ فضای سرور و کاهش حجم فایل بکاپ ها میگردد. همچنین، ممکن است از نظر سئو نیز مفید واقع شود، هرچند نیاز به تحقیقات بیشتری در این زمینه احساس میگردد.