חיפוש

כיצד לשלוט על גודל התמונות בוורדפרס (Image Sizes)

כאשר אתם מעלים תמונה לספריית המדיה בוורדפרס, נוצרים מספר עותקים שלה בגדלים שונים. וורדפרס עושה זאת כי חלקים שונים של האתר צריכים את אותה תמונה ברזולוציות שונות – תמונה גדולה לבאנר, תמונה ממוזערת ברשת, תמונה קטנה בווידג'ט וכדומה.

כברירת מחדל, וורדפרס מייצרת שלושה גדלים של תמונות: Thumbnail, Medium ו-Large. אתם יכולים לרשום גדלים מותאמים אישית, להסיר כאלו שאינכם צריכים ולשלוט באילו גדלים נוצרים לפי סוג תוכן.

"WordPress uses add_image_size() to register additional image sizes. Themes and plugins can register custom sizes for specific use cases." – WordPress Developer Resources.

חשוב לזכור שיותר גדלי תמונות משמעו יותר קבצים בתיקיית ה-uploads. כל תמונה שתעלו יכולה לייצר עשרות עותקים אם התבנית והתוספים שלכם רושמים גדלים רבים, דבר שתופס מקום בדיסק ומאט את ההעלאות.

גדלי תמונות ברירת המחדל בוורדפרס

וורדפרס מגיעה עם ארבעה גדלי תמונות מובנים. תוכלו להגדיר שלושה מהם תחת הגדרות > מדיה בממשק הניהול:

שם הגודלמידות ברירת מחדלניתן לשינוי?
thumbnail150 x 150 (חיתוך)כן (הגדרות > מדיה)
medium300 x 300 (מקסימום)כן (הגדרות > מדיה)
medium_large768 x 0 (רוחב בלבד)לא (נוסף ב-WP 4.4 עבור srcset רספונסיבי)
large1024 x 1024 (מקסימום)כן (הגדרות > מדיה)
קביעת גודל תמונות ברירת מחדל בוורדפרס

החל מוורדפרס 5.3, תמונות שרוחבן עולה על 2560 פיקסלים מוקטנות אוטומטית לרוחב זה. תוכלו לשנות את הסף באמצעות הפילטר big_image_size_threshold:

add_filter( 'big_image_size_threshold', function() {
    return 1920;
} );

הסרת גדלי תמונות ברירת מחדל

אם אינכם צריכים גדלים מסוימים, הסירו אותם באמצעות הפילטר intermediate_image_sizes. הוסיפו את הקוד הבא לקובץ functions.php:

add_filter( 'intermediate_image_sizes', function( $sizes ) {
    unset( $sizes[ array_search( 'medium', $sizes ) ] );
    unset( $sizes[ array_search( 'large', $sizes ) ] );
    return $sizes;
} );

קוד זה מונע מוורדפרס ליצור את הגדלים האלו בכל העלאה. הסירו רק גדלים שאתם בטוחים שאינם בשימוש על ידי התבנית או התוספים שלכם.

שימוש בגדלי תמונות בתבנית

ישנן שתי דרכים להשתמש בגדלי תמונות:

דרך ממשק הניהול

כאשר אתם מכניסים תמונה לפוסט, תוכלו לבחור את הגודל מפאנל הגדרות התמונה. הגדלים המותאמים אישית שלכם יופיעו ברשימה הנפתחת אם תרשמו אותם בספריית המדיה (מוסבר בהמשך המדריך).

שימוש בגודל התמונות שוורדפרס יוצרת

באמצעות קוד

בבניית תבניות, השתמשו בפונקציות תמונה של וורדפרס והעבירו את שם הגודל כפרמטר:

the_post_thumbnail( 'large' );

$image = wp_get_attachment_image_src( $attachment_id, 'my-custom-size' );

echo get_the_post_thumbnail( $post_id, 'thumbnail' );

שלוש הפונקציות הנפוצות ביותר הן the_post_thumbnail(),‏ get_the_post_thumbnail() ו-wp_get_attachment_image_src().

יצירת גדלי תמונות מותאמים אישית

הוספת גדלי תמונות משלכם היא תהליך של שני שלבים. השלב השני הוא אופציונלי.

שלב 1: רישום הגודל עם add_image_size

הוסיפו את הקוד הבא לקובץ functions.php:

add_action( 'after_setup_theme', function() {
    add_image_size( 'card-thumbnail', 400, 300, true );
    add_image_size( 'hero-banner', 1200, 600, true );
    add_image_size( 'square-medium', 500, 500, true );
} );

הפונקציה add_image_size() מקבלת ארבעה פרמטרים:

  • שם – slug ייחודי לגודל (לדוגמה, card-thumbnail)
  • רוחב – הרוחב היעד בפיקסלים
  • גובה – הגובה היעד בפיקסלים
  • חיתוךtrue חותך למידות המדויקות (למרכז כברירת מחדל), false משנה גודל באופן פרופורציונלי. ניתן גם להעביר מערך כמו array( 'left', 'top' ) כדי לשלוט במיקום החיתוך.

שלב 2: הוספת הגודל לתפריט ספריית המדיה

שלב זה הוא אופציונלי אך הופך את הגודל המותאם לזמין בבורר גודל התמונה בממשק הניהול:

add_filter( 'image_size_names_choose', function( $sizes ) {
    $sizes['card-thumbnail'] = 'Card Thumbnail';
    $sizes['hero-banner']    = 'Hero Banner';
    return $sizes;
} );

לאחר הוספת קוד זה, הגדלים המותאמים שלכם יופיעו כאפשרויות בהכנסת תמונות לפוסטים.

גדלי תמונות חדשים חלים רק על תמונות שהועלו לאחר הרישום. תמונות קיימות לא יקבלו את הגודל החדש עד שתייצרו מחדש thumbnails. השתמשו ב-WP-CLI (wp media regenerate) או בתוסף כמו Regenerate Thumbnails כדי ליצור את הגדלים החדשים עבור תמונות קיימות.

ייצור מחדש של גדלי תמונות

לאחר שינוי הפרמטרים של add_image_size(), לתמונות קיימות עדיין יש את המידות הישנות. תצטרכו לייצר אותן מחדש.

באמצעות WP-CLI

השיטה המהירה ביותר. הריצו משורת הפקודה:

wp media regenerate --yes

כדי לייצר מחדש רק גודל תמונה ספציפי:

wp media regenerate --image_size=card-thumbnail --yes

באמצעות תוסף

אם אין לכם גישה לשורת הפקודה, השתמשו בתוסף Regenerate Thumbnails. הוא מעבד תמונות באצוות מתוך ממשק הניהול של וורדפרס.

צמצום גדלי תמונות לפי סוג תוכן

כאשר לאתר שלכם יש מספר סוגי תוכן מותאמים (Custom Post Types), לכל אחד גדלי תמונות משלו, אתם יכולים להגיע למצב של 20-30 תמונות לכל העלאה. תוכלו לצמצם זאת על ידי ייצור רק הגדלים שכל סוג תוכן באמת צריך:

add_filter( 'intermediate_image_sizes', function( $sizes ) {
    $post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0;
    $type    = $post_id ? get_post_type( $post_id ) : '';

    if ( 'page' === $type ) {
        $allowed = array( 'thumbnail', 'medium', 'hero-banner' );
        return array_intersect( $sizes, $allowed );
    }

    if ( 'portfolio' === $type ) {
        $allowed = array( 'card-thumbnail', 'square-medium' );
        return array_intersect( $sizes, $allowed );
    }

    return $sizes;
} );

גישה זו יכולה לחסוך מקום משמעותי בדיסק באתרים עם סוגי תוכן רבים וגדלי תמונות רבים.

כיצד לראות גדלי תמונות רשומים

כדי לראות את כל גדלי התמונות שנרשמו על ידי התבנית והתוספים שלכם, תוכלו להשתמש ב-WP-CLI או בקטע קוד לדיבוג.

באמצעות WP-CLI:

wp eval 'print_r( wp_get_registered_image_subsizes() );'

או הוסיפו באופן זמני לקובץ תבנית:

<?php
global $_wp_additional_image_sizes;
echo '<pre>';
print_r( $_wp_additional_image_sizes );
echo '</pre>';
?>

הסירו את קוד הדיבוג לאחר שסיימתם לבדוק. זהו כלי פיתוח, לא משהו שצריך להישאר באתר בפרודקשן.

שאלות נפוצות

שאלות נפוצות על גדלי תמונות בוורדפרס:

כמה גדלי תמונות וורדפרס יוצרת כברירת מחדל?
וורדפרס יוצרת ארבעה גדלים כברירת מחדל: Thumbnail (150x150, חיתוך), Medium (300x300 מקסימום), Medium Large (768 פיקסלים רוחב, נוסף ב-WP 4.4 לתמונות רספונסיביות), ו-Large (1024x1024 מקסימום). תבניות ותוספים יכולים לרשום גדלים נוספים, כך שהמספר הכולל תלוי בהגדרות שלכם.
מהו הפילטר big_image_size_threshold?
החל מוורדפרס 5.3, תמונות שרוחבן עולה על 2560 פיקסלים מוקטנות אוטומטית לרוחב זה. התמונה המקורית נשמרת עם סיומת -scaled בשם הקובץ. תוכלו לשנות את הסף באמצעות הפילטר big_image_size_threshold, או להחזיר false כדי לבטל את ההקטנה לחלוטין.
מה עושה פרמטר ה-crop בפונקציה add_image_size?
כאשר מוגדר true, התמונה נחתכת למידות המדויקות שציינתם (חיתוך למרכז כברירת מחדל). כאשר false, התמונה משנה גודל באופן פרופורציונלי כדי להתאים לרוחב ולגובה שהוגדרו. ניתן גם להעביר מערך כמו array( 'left', 'top' ) כדי לשלוט במיקום העוגן של החיתוך.
האם צריך לייצר thumbnails מחדש אחרי הוספת גודל תמונה חדש?
כן. גדלים חדשים חלים רק על תמונות שהועלו לאחר הרישום. כדי ליצור את הגודל החדש עבור תמונות קיימות, הריצו wp media regenerate דרך WP-CLI, או השתמשו בתוסף כמו Regenerate Thumbnails. רק הגדלים החסרים נוצרים - גדלים קיימים לא נוצרים מחדש.
כיצד ניתן לראות אילו גדלי תמונות רשומים באתר שלי?
הריצו wp eval 'print_r( wp_get_registered_image_subsizes() );' דרך WP-CLI, או הוסיפו באופן זמני print_r( $_wp_additional_image_sizes ) לקובץ תבנית. זה מציג את כל הגדלים שנרשמו על ידי התבנית והתוספים שלכם, כולל המידות והגדרות החיתוך.
האם הסרת גדלי תמונות מוחקת קבצי תמונות קיימים?
לא. הסרת גודל מהפילטר intermediate_image_sizes מונעת מוורדפרס ליצור את הגודל הזה רק בהעלאות עתידיות. קבצים שכבר נוצרו נשארים בדיסק. כדי לנקות קבצי תמונות שאינם בשימוש, תוכלו להשתמש בתוסף כמו Image Cleanup או להסיר אותם ידנית מתיקיית ה-uploads.

סיכום

וורדפרס מייצרת מספר גדלי תמונות לכל העלאה כדי להגיש את הרזולוציה הנכונה בחלקים שונים של האתר. תוכלו להגדיר את ברירות המחדל תחת הגדרות > מדיה, לרשום גדלים מותאמים עם add_image_size(), ולהסיר גדלים שאינכם צריכים באמצעות הפילטר intermediate_image_sizes.

עבור אתרים עם סוגי תוכן רבים, ייצרו רק את הגדלים שכל סוג באמת צריך כדי לחסוך מקום בדיסק. לאחר שינוי פרמטרי גודל תמונה, ייצרו thumbnails מחדש עם WP-CLI או תוסף כדי שתמונות קיימות יקבלו את המידות החדשות.

למידע נוסף על אופטימיזציה לתמונות, עיינו במדריך על אופטימיזציה לתמונות באתרי וורדפרס מבחינת SEO.

דיון ותגובות
39 תגובות  ]
  • לאה 20 מרץ 2018, 20:03

    אחלה מאמר. חידשת לי בפונקציה האחרונה – לא ידעתי שאפשר לשנות גדלים לפי סוג תוכן. זה ממש מעניין.

    משהו נוסף שוורדפרס עושה עם גדלי התמונות השונים זה משתמשת בהם בשביל רזולוציות שונות (אם הם באותה פרופורציה כמו התמונה המקורית) במאפיין ה – srcset. כתבתי קצת על זה בשיתוף קולגתי לשעבר רחלי.

  • אלון 22 מרץ 2018, 16:37

    מה לגבי יצירה של גודל תמונה ל- page tempalte ספציפי, אני לא הצלחתי למצוא פתרון, יש לך משהו מעניין?

    פסוט מעולה כרגיל..

    • רועי יוסף 22 מרץ 2018, 16:54

      תודה אלון 🙂

      זו שאלה מעניינת וזה בטח יכול להיות מאד שימושי. אין לי פתרון לכך בשלב הנוכחי, אבל אם מצאת אחד כזה מאד אשמח אם תעשה פה איזה פינג…

  • נעמה 12 אפריל 2020, 23:16

    היי תודה רבה על המידע המעולה, רציתי לשאול היכן אני יכולה להשיג את הפונט שהשתמשת בו לנושא הפוסט, שם הפונט – אלמוני צר

    • רועי יוסף 13 אפריל 2020, 8:29

      היי נעמה,

      בצעי חיפוש בגוגל ותגיעי לאתר אאא המוכר את הפונט הזה…

  • רומק 7 יוני 2020, 17:37

    שלום רב,
    שאלה בעניין איכות תמונות בוויקס ו וורדפרס.
    בניתי בעבר אתר (בלוג) בוויקס וכרגע אני בתהליכי מעבר של האתר לוורדפרס. משום מה האיכות של התמונות המוצגות בוורדפרס נמוכה יותר מאיכותן של אותן תמונות (מאותם קבצי מקור) בוויקס. האם יש סיבה לתופעה? האם יש דרך לשפר את איכות התמונות המוצגות בוורדפרס ?

    • רועי יוסף 7 יוני 2020, 19:24

      היי רומק,

      וורדפרס מורידה באופן אוטומטי את איכות התמונות לטובת זמן טעינה מהיר יותר. הוסף את הקוד הבא לקובץ functions.php של התבנית שלך בכדי ששמירה של תמונות בפורמט JPEG תהיה באיכות המקורית:

      add_filter('jpeg_quality', function($arg){return 100;});
  • רומק 8 יוני 2020, 0:01

    תודה רבה רועי!

  • שמעון חדידה 14 יולי 2020, 16:54

    איך מבטלים את הורדת איכות התמונה? כל פעם שאני מעלה תמונה וורדפרס מוריד לה את האיכות.
    יש דרך למנוע את זה?

    • רועי יוסף 14 יולי 2020, 20:37

      היי שמעון,

      ראשית הוסף את הקוד הבא ל functions.php:

      /** JPEG Image Quality Filter */
      add_filter( 'jpeg_quality', 'my_jpeg_quality' );
      function my_jpeg_quality( $arg ) {
          return 100;
      }

      שנית, בדוק כי ImageMagick extension מותקן בשרת. תוכל לאחר מכן להשתמש בתוסף הבא בכדי לדאוג שוורדפרס תשתמש ב extension המדובר:

      https://wordpress.org/plugins/imagemagick-engine/

      בהצלחה!

  • אווה 10 אוגוסט 2020, 19:24

    האם אפשר לשאול שאלה על אלמנטור?

  • סיון סיסו 9 אוקטובר 2020, 18:19

    היי, מופיעה לי הודעת שגיאה על כך שהשרת תפוס בכל פעם שאני מנסה להעלות תמונה לאלמנטור (הגודל של התמונה תקין, ניסיתי להעלות גם בגדלים שונים). מה יכול לפתור את הבעיה?
    בתודה מראש

  • סיון סיסו 10 אוקטובר 2020, 11:57

    היי רועי,
    זו הודעת השגיאה, האם זה מה שהתכוונת? לא רשום HTTP…
    עיבוד תמונה לאחר-העלאה נכשל. הדבר נובע ככל הנראה מכיוון שהשרת תפוס או שאין לו מספיק משאבים. העלאת תמונה קטנה יותר עשויה לעזור. הגודל המקסימלי המוצע הוא 2500 פיקסלים.
    תודה!

  • רועי יוסף 10 אוקטובר 2020, 14:37

    הבנתי,

    אם יש לך גישת FTP, הוסיפי את השורה הבאה לקובץ wp-config.php ונסי שוב:

    define( 'WP_MEMORY_LIMIT', '256M' );

    שימי לב להוסיף אותה בדיוק לפני השורה הבאה:

    /* That's all, stop editing! Happy publishing. */
    • סיון סיסו 11 אוקטובר 2020, 16:46

      רועי המון תודה, זה עבד!

    • ארין 12 אוקטובר 2020, 16:43

      היי רועי,

      נתקלתי באותה השגיאה בזמן העלאת תמונות.. יש לי איך לפתור את זה במידה ואני לא מתעסקת בקוד, פשוט מקימה אתר באלמנטור? תודה רבה!

      • רועי יוסף 12 אוקטובר 2020, 16:47

        היי ארין,

        הפתרון הוא אותו פתרון – בקשי ממישהו בקבוצות וורדפרס לעזור לך להוסיף את שורת הקוד ובטוח מישהו יתנדב.

  • שמעון חדידה 11 אוקטובר 2020, 16:59

    ואם מדובר על תמונות png?

  • ברוריה סקלי 21 נובמבר 2020, 11:58

    הי רועי אי אפשר להרשם לרשימת תפוצה.. אי אפשר להקליד את המייל במקום הנדרש.

    • רועי יוסף 21 נובמבר 2020, 23:45

      היי ברורויה,

      את יכולה לפרט? שיניתי את צבע הטקסט – אולי הבעיה נפתרה?

  • רלי לילוז קרסו 5 אוקטובר 2021, 14:23

    היי רועי, פוסט מעולה, מצרפת אותך לרשימת המעקב שלי 🙂
    שאלה קטנה…כשיוצרים גלריה, כל פעם שלוחצים על תמונה להגדלה הלחצנים לסגירת התמונה וכל מה שליד זה מופיעים בקטן מאוד בפינה השמאלית וכמעט בקושי ניתן להבחין בהם. האם יש דרך שבה ניתן לשלוט בגודל של הלחצנים הללו? אם כן זאת תהיה תגלית מדהימה עבורי, בבקשה תגיד שיש.

  • אייל 1 נובמבר 2021, 9:07

    אחד המאמרים המעניינים, חבל שקראתי אותו לאחר שהשרת שלי מפוצץ בגרסאות רבות לכל תמונה :-),

    השאלה האם יש דרך קלה להתפטר מעשרות עותקים של כל תמונה שנוצרו בעבר שרת, להשאיר עותק אחד לדוגמה את הכי גדול, ואחר-כך ליצור רק עוד 2 הנדרשים…

  • חיים 2 פברואר 2022, 13:35

    הי רועי אני רוצה לבנות בנדל של מוצרים ולעלות אותו לחנות שלי בוורדפרס, רציתי לדעת מה הגודל הרצוי של קובץ כדי לבנות את הבנדל.

    • רועי יוסף 2 פברואר 2022, 13:38

      היי חיים,

      אני לא בטוח שאני מבין את השאלה. אתה מדבר על הגודל של תמונות המוצר? אם כן אז זה לגמרי בהתאם לתבנית בה אתה משתמש.

      • חיים 2 פברואר 2022, 17:29

        כן התכוונתי לתמונת מוצר . ואני משתמש ב canva

  • יעל שיינברגר 18 אפריל 2023, 2:08

    היי רציתי לשאול למה כשאני מעלה תמונות לאתר הן יוצאות מטושטש על אף שהתמונות ברורות לגמרי במקורי?

    • רועי יוסף 18 אפריל 2023, 11:29

      היי יעל, האם התמונות מוצגות באתר באותם מימדים של התמונה המקורית? אם לא, האם באותן פרופרציות?

השאירו תגובה

הוסיפו קוד באמצעות הכפתורים מטה. למשל, בכדי להוסיף PHP לחצו על הכפתור PHP והוסיפו את הקוד בתוך השורטקוד. מצאתם שגיאה בפוסט? עדכנו אותנו...

Savvy WordPress Development official logo