העלאה למדיה והצגה של תמונות webp

פורמט webp אשר מפותח על ידי גוגל נחשב לבעל קידוד יעיל שמתבטא בנפח קובץ קטן יותר בהשוואה ל jpeg. לכן אם לא תשתמשו בו תקבלו התראה ב Lighthouse שאומרת Serve images in next-gen formats.

האמת שזה לא תמיד מדויק, במיוחד בתמונות בעלות רזולוציה גבוהה, אפשר להגיע עם jpeg לכיווץ טוב יותר מ webp אבל נניח לזה כרגע (בעתיד כולנו נעבור ל AVIF שמציג ביצועים טובים יותר).

כברירת מחדל לא ניתן להעלות קובץ webp לספריית המדיה ולא להציג קובץ כזה במדיה. קטע הקוד הבא אותו תצרטכו להכניס לקובץ functions.php בתנית הבת (או בדרך אחרת שאתם רגילים אליה) יפתור לכם את הבעיה. הקוד מאפשר גם תמיכה ב webm לקבצי וידאו בדחיסה משופרת.

*שימו לב שלרוב הדרך הנכונה היא לתת לתוסף/cdn להגיש לכם את התמונה בפומרט webp אם הדפדפן תומך ולא להעלות ישירות כ webp. עם זאת, יתכן וכן תצטרכו לעשות את זה ובשביל זה תצטרכו לכתוב את הקוד.

/*Enable upload for webp and webm image\video files*/
function webp_upload_mimes($existing_mimes) {
    $existing_mimes['webp'] = 'image/webp';
    $existing_mimes['webm'] = 'video/webm';
    return $existing_mimes;
}
add_filter('mime_types', 'webp_upload_mimes');

/* Enable preview / thumbnail for webp image files*/
function webp_is_displayable($result, $path) {
    if ($result === false) {
        $displayable_image_types = array( IMAGETYPE_WEBP );
        $info = @getimagesize( $path );

        if (empty($info)) {
            $result = false;
        } elseif (!in_array($info[2], $displayable_image_types)) {
            $result = false;
        } else {
            $result = true;
        }
    }

    return $result;
}
add_filter('file_is_displayable_image', 'webp_is_displayable', 10, 2);
0 0 דרג
דרג את הפוסט
הרשמה
Notify of
0 תגובות
Inline Feedbacks
הצג את כל התגובות

גם הסניפטים הבאים יעניינו אותך

0
אשמח לשמוע את דעתכם, מוזמנים להשאיר תגובהx