Obsługa plików WebP w WordPress

Taki temat na dzisiaj. Format grafiki WebP zyskuje szybko popularność, głównie za sprawą zaleceń w wynikach PageSpeed. Jest wiele wtyczek, które dodają w WordpPress możliwość obsługi grafiki w formacie WebP. Niestety większość to spore rozwiązania, które zapewniają konwersję wgranych już plików jpg i png, albo zmianę ich podczas dodawania.

A ja chcę jedynie umożliwić wysyłanie i wyświetlanie zdjęć w formacie WebP. To dość proste. WordPress nie obsługuje natywnie przeglądania i przesyłania plików WebP, ale wyjaśnię ci, jak możesz to zrobić w kilku prostych krokach. Podobnie jak przy innych formatach, np. svg wykorzystamy filtr mime_types. Oczywicie odpowiedni kod dodajemy w pliku functions.php.

function webp_upload_mimes($existing_mimes) {
    $existing_mimes['webp'] = 'image/webp';
    return $existing_mimes;
}
add_filter('mime_types', 'webp_upload_mimes');

Jeśli chcesz zobaczyć podgląd obrazu (miniatury) po przejściu do Media, musisz dodać poniższy kod poniżej w tym samym pliku functions.php.

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);
Przewijanie do góry