/wp-cubi-imagemin

Standalone image minification WordPress plugin

Primary LanguagePHPGNU General Public License v2.0GPL-2.0

Build Status Latest Stable Version License

Standalone image minification WordPress plugin

wp-cubi

Overview

wp-cubi-imagemin is a very simple image minification plugin for WordPress, meant to be used in a composer installation. It uses a couple of image minification tools to optimize uploaded images (jpg, png, gif and svg).

wp-cubi-imagemin is essentially a WordPress wrapper for psliwa/image-optimizer.

Installation

  • composer require globalis/wp-cubi-imagemin

Configuration

The plugin will try to find the image minification tools it needs on the system. But you can provide your own binaries instead, and the plugin will use them.

To use your own binaries, just define the following constants in your configuration files, pointing to your binaries paths :

define('WP_CUBI_IMAGEMIN_PATH_BIN_ADVPNG', '/var/www/your-project/bin/advpng');
define('WP_CUBI_IMAGEMIN_PATH_BIN_GIFSICLE', '/var/www/your-project/bin/gifsicle');
define('WP_CUBI_IMAGEMIN_PATH_BIN_JPEGOPTIM', '/var/www/your-project/bin/jpegoptim');
define('WP_CUBI_IMAGEMIN_PATH_BIN_JPEGTRAN', '/var/www/your-project/bin/jpegtran');
define('WP_CUBI_IMAGEMIN_PATH_BIN_OPTIPNG', '/var/www/your-project/bin/optipng');
define('WP_CUBI_IMAGEMIN_PATH_BIN_PNGCRUSH', '/var/www/your-project/bin/pngcrush');
define('WP_CUBI_IMAGEMIN_PATH_BIN_PNGOUT', '/var/www/your-project/bin/pngout');
define('WP_CUBI_IMAGEMIN_PATH_BIN_PNGQUANT', '/var/www/your-project/bin/pngquant');
define('WP_CUBI_IMAGEMIN_PATH_BIN_SVGO', '/var/www/your-project/bin/svgo');

If you do not define one ot the binaries paths, the plugin will try to use the system version. If it doesn't find an installed version on the system, it will just skip this tool and use the other ones.

You don't need to have all the tools working, but it is recommanded to have at least pngquant, jpegoptim and gifsicle to provide a meaningfull level of minification.

Note: binary files must have execution permissions.

Hooks

  • apply_filters('wp-cubi-imagemin\options', $options) : Filter the options of ImageOptimizer\OptimizerFactory (see the complete list), such as the JPG compression level (default to 85 in wp-cubi-imagemin).

Bulk optimization

Bulk image optimization can be done using wp-cli :

  • Install wp-cli and ensure wp-cubi-imagemin is activated
  • Usage: wp media optimize <directories>... [--jpeg_level=<jpeg_level>]
  • Help: wp help media optimize

Note: thumbnails regeneration commands such as wp media regenerate will trigger plugin optimization functions as well.

Binaries

Available binaries :

Development

Before opening pull requests, please check and apply project coding standards with ./vendor/bin/phpcs . and/or ./vendor/bin/phpcbf .