Images to WebP

설명

Statistics say that WebP format can save over a half of the page weight without losing images quality.
Convert PNG, JPG and GIF images to WebP and speed up your web, save visitors download data, make your Google ranking better.

  • automated test after plugin activation to make sure it will work on your server
  • works with all types of WordPress installations: domain, subdomain, subdirectory, multisite/network
  • works on Apache and NGiNX
  • image URL will be not changed so it works everywhere, in <img> src, srcset, <picture>, even in CSS backgrounds and there is no problem with cache
  • original files will be not touched
  • set quality of converted images
  • auto convert on upload
  • only convert image if WebP filesize is lower than original image filesize
  • bulk convert existing images to WebP ( you can choose folders )
  • bulk convert only missing images
  • works with `Fly Dynamic Image Resizer` plugin

Hooks for developers

itw_extensions

Maybe you want to support also less famous JPEG extension like jpe, jfif or jif

add_filter( 'itw_extensions', 'extra_itw_extensions', 10, 1 );
function extra_itw_extensions( $extensions ){
    $extensions[] = 'jpe';
    $extensions[] = 'jfif';
    $extensions[] = 'jif';
    return $extensions;
}

itw_sizes

Maybe you want to disable WebP for thumbnails

add_filter( 'itw_sizes', 'disable_itw_sizes', 10, 2 );
function disable_itw_sizes( $sizes, $attachmentId ){
    unset( $sizes['thumbnail'] );
    return $sizes;
}

itw_htaccess

Maybe you want to modify htaccess rules somehow

add_filter( 'itw_htaccess', 'modify_itw_htaccess', 10, 2 );
function modify_itw_htaccess( $rewrite_rules ){
    // do some magic here
    return $rewrite_rules;
}

$images_to_webp->convert_image()

Maybe you want to automatically generate WebP for other plugins

add_action( 'XXPLUGIN_image_created', 'XX_images_to_webp', 10, 2 );
function XX_images_to_webp( $image_path ){
    global $images_to_webp;
    $images_to_webp->convert_image( $image_path );
}

스크린샷

설치

  1. Upload images-to-webp directory to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

FAQ

Plugin requirements

It should work almost everywhere 😉
PHP 5.6 or higher
GD or Imagick extension with WebP support
Enabled server modules: mod_mime, mod_rewrite

WebP images stored location

WebP images are generated in same directory as original image. Example:
original img: /wp-content/uploads/2019/11/car.png
webp version: /wp-content/uploads/2019/11/car.png.webp

How to check if plugin works?

When you have installed plugin and converted all images, follow these steps:

  1. Run Google Chrome and enable Dev Tools (F12).
  2. Go to the Network tab click on Disable cache and select filtering for Img (Images).
  3. Refresh your website page.
  4. Check list of loaded images. Note Type column.
  5. If value of webp is there, then everything works fine.

Apache .htaccess

Plugin should automatically update your .htaccess with needed rules.
In case it’s not possible to write them automatically, screen with instructions will appear.
Anyway, here is how it should look like:

<IfModule mod_mime.c>
    AddType image/webp .webp
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_ACCEPT} image/webp
    RewriteCond %{REQUEST_FILENAME} "/"
    RewriteCond %{REQUEST_FILENAME} "\.(jpg|jpeg|png|gif)$"
    RewriteCond %{REQUEST_FILENAME}\.webp -f
    RewriteRule ^(.+)$ $1\.webp [NC,T=image/webp,E=webp,L]
</IfModule>

NGiNX config

After you activate plugin, screen with instructions will appear.
Anyway, here is how it should look like:

You need to add this map directive to your http config, usually nginx.conf ( inside of the http{} section ):

map $http_accept $webp_suffix{
    default "";
    "~*webp" ".webp";
}

then you need to add this to your server block, usually site.conf or /nginx/sites-enabled/default ( inside of the server{} section ):

location ~* ^/.+\.(png|gif|jpe?g)$ {
    add_header Vary Accept;
    try_files $uri$webp_suffix $uri =404;
}

ISP Manager

Are you using ISP Manager? Then it’s probably not working for you, but no worries, you just need to go to WWW domains and delete jpg|jpeg|png from the Static content extensions field.

후기

2022년 3월 18일
Install then get a message "Add this to htaccess and reactivate". Well there's a waste of time for a start. Then, having added the code - It still does not activate!! Total waste of time
2021년 12월 28일
Nice work, thank you.
2021년 12월 13일
This is so easy to use! I was looking for a plugin that I could use on images outside of uploads to just create webp versions. It builds a directory tree for you to find the correct directory and it even gives you a find and convert missing images option. Brilliant, thank you!
2021년 8월 6일
If you want to use this plugin, then you have to know a little about programming, because many errors occur during the plugin operation, and the plugin developer does not take any part in fixing them. It is quite obvious that the very name of the plugin implies that it is enough to download and install the plugin for it to work. But you can't do that with this plugin.
모든 16 평가 읽기

기여자 & 개발자

“Images to WebP”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

“Images to WebP”(이)가 4(으)로 번역되었습니다. 기여해 주셔서 번역자님께 감사드립니다.

자국어로 “Images to WebP”(을)를 번역하세요.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하세요.

변경이력

2.0

  • Tested on WP 6.0
  • convert and serve WebP images anywhere – not only in wp-content folder
  • option to delete original images after conversion

1.9.1

  • Tested on WP 5.9

1.9

  • Tested on WP 5.8
  • added some nonce checks and more security validations
  • better nginx instructions

1.8

  • Tested on WP 5.7
  • add more CURL options
  • fix backslashes for localhosts

1.7

  • Tested on WP 5.6
  • fixed problem on some multisites

1.6

  • Tested on WP 5.4
  • added support for Fly Dynamic Image Resizer plugin

1.5

  • notice when test image is not accessible

1.4

  • new test method

1.3

  • fixed text domain for translations

1.2

  • added instructions for NGiNX

1.1

  • make it works in multisite and subdirectory installs

1.0

  • First version