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

در حال حاضر، زمانیکه تصویری را آپلود می کنید در اندازه های 150*150 و … هم بر روی هاست قرار می گیرد. اما حال می خواهیم تصویر در اندازه 50*50 هم روی هاست قرار بگیرد. براین این کار فایل Functions.php پوسته خود را باز کرده و کد زیر را درون قرار دهید:

add_image_size( 'wpschool-custom-size', 50, 50, true );

با قرار دادن کد بالا، به وردپرس می گوییم که تصاویر آپلود شده را در اندازه 50*50 هم بر روی هاست قرار بده.

حال می خواهیم تصویر در این اندازه را در صفحه فراخوانی کنیم. برای این کار می توانیم از کد زیر استفاده کنیم:

$image_url = wp_get_attachment_image_src($image_id,'wpschool-custom-size', true);
<img src="<?php echo $image_url[0]; ?>" alt="" class="post_thumb_small"/>

به همین راحتی

نکته: این تغییرات بر روی تصاویر جدیدی که آپلود می شوند اعمال خواهد شد.

حال اگر بخواهیم این تغییرات بر روی تصاویری که قبلا آپلود شده اند هم اعمال شود از کد زیر استفاده می کنیم:

function regenerate_all_attachment_sizes() {
    $args = array( 'post_type' => 'attachment', 'numberposts' => 20, 'post_status' => null, 'post_parent' => null, 'post_mime_type' => 'image' ); 
    $attachments = get_posts( $args );
    if ($attachments) {
        foreach ( $attachments as $post ) {
            $file = get_attached_file( $post->ID );
            wp_update_attachment_metadata( $post->ID, wp_generate_attachment_metadata( $post->ID, $file ) );
        }
    }       
}

کد بالا، تمامی اندازه های تصاویر آپلود شده را بروز می کند

توضیحات:

خط 2 تا 3: دریافت 20 عکس اول پیوست شده

خط 6: دریافت تصویر در اندازه کامل با فایل پیوست شده

خط7: بروزرسانی و تغییر مجدد اندازه تصاویر در اندازه های تعریف شده

آموزش امروز مدرسه وردپرس به پایان رسید. امیدوارم این مقاله بتونه کاربردی واستون داشته باشه

موفق باشید

5 دیدگاه برای “افزودن اندازه جدید به تصاویر

  • behnam
    - ۱۳ اردیبهشت , ۱۳۹۳

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

    • الناز
      - ۱۴ اردیبهشت , ۱۳۹۳

      سلام دوست من.
      این کد را داخل فایل function.php قالب خودتون اضافه کنید ببینید مشکلتون حل میشه یا نه
      function paulund_remove_default_image_sizes( $sizes) {
      unset( $sizes['thumbnail']);
      unset( $sizes['medium']);
      unset( $sizes['large']);

      return $sizes;
      }
      add_filter('intermediate_image_sizes_advanced', 'paulund_remove_default_image_sizes');

  • علی امینی
    - ۱۴ تیر , ۱۳۹۳

    سلام
    تشکر بابت آموزش. یه سوالی داشتم. میشه کاری کرد که مثلا فقط تصاویر یه پست تایپ خاص به یک سایز دیگه هم آپلود بشه؟

    • الناز بیک زاده
      - ۱۲ مرداد , ۱۳۹۳

      سلام دوست عزیز. برای این کار باید در آن قسمتی که کد تصویر پست تایپ رو قرار دادید از این تابع استفاده کنید

  • مرتضی
    - ۳ شهریور , ۱۳۹۳

    سلام من تو صفحه ایندکس برای تصویر خبر استایل خاصی تعریف کردم تا همه تصاویر به یک اندازه نشون داده بشن.میخوام وقتی روی ادامه خبر کلیک میشه در صفحه جدید تصویر با اندازه واقعی خودش یا بزرگتر از صفحه اصلی نشون داده بشه .بدون دادن استایل همان اندازه صقحه اصلی نشون داد.چون خواستم بزرگتر نشون بده استایل جدا براش تعریف کردم.تصویر بزرگتر شد اما تار نشون میده ..میشه کمک کنید بگید از چه کدی باید استفاده کنم.؟ممنون

دیدگاه خود را بیان کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

-- بارگیری کد امنیتی --