Unblocks production use on sites previously running Smush.
migrate-from-smush:
- Reads wp-smpro-smush-data postmeta, writes _h4b_img_optim marker
- --dry-run / --force-rescan / --remove-smush-meta / --limit flags
- Verified: 100 attachments migrated cleanly on dev.rds.ink,
bulk count drops from 734 → 634
Picture_Tag rewriter:
- Hooks the_content + post_thumbnail_html + widget_text + Elementor
frontend + wp_get_attachment_image at priority 99
- Wraps <img> in <picture><source avif><source webp><img></picture>
when sibling files exist
- Double-wrap protection via byte-range tracking of existing <picture> blocks
- Per-image opt-out via data-no-h4b attribute
- Cached sibling lookups per request
- 8 edge-case tests pass
LOC: 2480 (was 1997). Adds class-cli-migrate.php (193 LOC) and
class-picture-tag.php (284 LOC).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
29 lines
975 B
PHP
29 lines
975 B
PHP
<?php
|
|
/**
|
|
* Plugin Name: H4B Image Optim
|
|
* Plugin URI: https://gitea.help4bis.com/help4bis/h4b-image-optim
|
|
* Description: ICC-safe image optimisation with WebP + AVIF generation. Replaces Smush Pro without the grey-wash bug. No CDN.
|
|
* Version: 0.2.0
|
|
* Author: help4bis (Henk + Claude)
|
|
* Author URI: https://help4bis.com
|
|
* License: GPL-2.0-or-later
|
|
* License URI: https://www.gnu.org/licenses/gpl-2.0.txt
|
|
* Requires PHP: 8.1
|
|
* Requires at least: 6.4
|
|
* Text Domain: h4b-image-optim
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
define( 'H4B_IMG_OPTIM_VERSION', '0.2.0' );
|
|
define( 'H4B_IMG_OPTIM_FILE', __FILE__ );
|
|
define( 'H4B_IMG_OPTIM_DIR', plugin_dir_path( __FILE__ ) );
|
|
define( 'H4B_IMG_OPTIM_URL', plugin_dir_url( __FILE__ ) );
|
|
define( 'H4B_IMG_OPTIM_SLUG', 'h4b-image-optim' );
|
|
|
|
require_once H4B_IMG_OPTIM_DIR . 'includes/class-plugin.php';
|
|
|
|
H4B\ImageOptim\Plugin::instance()->boot();
|