Built by a
Boston photographer who needed it for their own portfolio. This plugin prioritizes
image quality over everything else — no subscriptions, no external services.
0.5.20
- Fix: Instant reveal now waits for
img.decode() to prevent white flash on fast-loading images.
0.5.19
- Refactor: Simplified LQIP fade transition — removed blur filter and scale animation.
- Fix: Eliminated white flash during LQIP-to-image transition by ensuring image is fully visible before removing placeholder.
- Fix: Fast-loading images now appear instantly without the 400ms fade delay.
- Cleanup: Removed unused per-image load duration tracking.
0.5.18
- Feature: LQIP Generate All now shows real-time progress counter, status text, and stop button.
- Feature: Unified spinner/status UI for both AVIF and LQIP tools panels.
- Fix: "AVIF conversion available" badge now correctly shows "Yes" when engines report support.
- Fix: AVIF Delete All button now correctly re-enables Generate All button after completion.
0.5.17
- Fix: LQIP background now correctly clears for already-loaded/cached images.
0.5.16
- Feature: Restored LQIP background cleanup after image load.
- Feature: Added "Pixelated placeholders" option to display ThumbHash as sharp pixels.
- Enhancement: Improved LQIP transition — blur-up effect with scale animation.
- Change: Transition updated to 400ms ease-out for smoother reveal.
0.5.15
- Enhancement: Tuned LQIP fade thresholds based on human perception research.
- Change: Page load window increased to 2 seconds (covers initial render).
- Change: Individual load duration increased to 200ms (perception threshold).
0.5.14
- Fix: WordPress Plugin Check compliance — proper escaping for inline scripts/styles.
- Fix: Replace
strip_tags() with wp_strip_all_tags() in BackgroundImages.
- Fix: Prefix global variables with plugin prefix.
- Chore: Remove
.DS_Store files from repository.
0.5.13
- Refactor: Simplified LQIP fade logic by removing background cleanup step.
0.5.12
- Feature: LQIP operations now log successes, failures, and summaries to the Logs panel.
- Fix: LQIP stats now correctly validate metadata structure, matching generation skip logic.
- Fix: Add object cache clearing before LQIP generation to prevent stale data on servers with persistent caching.
- Fix: Prevent false positive \"success\" reports in
wp lqip generate when generation fails silently but stale data exists.
- Fix: Remove deprecated
imagedestroy() calls for PHP 8.0+ compatibility.
- Refactor: Consolidate LQIP generation logic into shared helper for consistency between Admin UI and CLI.
0.5.11
- Fix: Critical fix for
wp lqip generate --force option.
- Fix:
wp lqip delete --all now correctly clears object cache to prevent stale stats.
0.5.9
- Feature: Added
--force option to wp lqip generate command to force regeneration of LQIPs.
0.5.8
- Fix: Resolved "Insufficient memory" error when generating LQIP for high-resolution images by optimizing ImageMagick loading.
0.5.7
- Feature: CSS background image AVIF support — replaces JPEG background images with AVIF versions. Thanks to David C.
- Feature: Works with page builders (Elementor, Divi, Beaver Builder, WPBakery, Bricks, etc.)
- Feature: New setting "Serve AVIF for CSS backgrounds" under AVIF serving options
- Fix: Versioned image URLs (e.g.,
image.jpg?ver=123) now correctly detected and replaced
- Fix: Query string stripping for CSS file path resolution
- Security: Sanitize CSS selectors to prevent XSS injection
0.5.6
- Enhancement: Smart fade logic — only apply fade transition for slow-loading images
- Enhancement: Images loading within 1 second of page load display instantly (no fade)
- Enhancement: Cached/fast-loading images skip fade for snappier feel
0.5.5
- Feature: Added "Fade in images" option to smoothly transition from LQIP to full image
- Fix: Used img.decode() to prevent white flash during LQIP fade transition
- Fix: CSS selector now correctly handles both picture wrapper and standalone img cases
0.5.4
- Feature: Added optional smooth fade-in for LQIP images
- Translations: Added German, Italian, Japanese, Portuguese (Brazil), and Russian translations
- Enhancement: Updated translations for Spanish, French, Hindi, and Chinese
- Fix:
wp lqip generate --all now correctly processes all eligible images
- Fix:
wp lqip stats accurately counts all supported image types
- Fix: LQIP JavaScript is now correctly excluded when feature is disabled
- Fix: Improved error logging for LQIP generation failures
0.5.3
- Fix: Added missing LQIP options to plugin activation (thumbhash_size, generate_on_upload, generate_via_schedule)
- Fix: Added missing LQIP options to uninstall cleanup for complete data removal
- Fix: Properly minified thumbhash-decoder.min.js (62% size reduction)
- Fix: Excluded developer documentation from WordPress plugin distribution
0.5.2
- Feature: Bundled ThumbHash library — no Composer dependency required on deployment
- Enhancement: Improved LQIP generation with better error handling, progress reporting, and memory management
- Enhancement: Added
--limit and --verbose options to wp lqip generate command
- Fix: Resolved hanging issue in
wp lqip generate --all command with better error handling and progress output
- Fix: Clear error messages when ThumbHash library is unavailable
0.5.1
- Fix: Improved error handling and logging for ThumbHash generation
- Enhancement: WP-CLI now warns if LQIP feature is disabled in settings
- Enhancement: Better diagnostics for missing source files during LQIP generation
0.5.0
- Feature: LQIP (Low Quality Image Placeholder) using ThumbHash for smooth image loading
- Feature: WP-CLI commands for LQIP management (
wp lqip stats, wp lqip generate, wp lqip delete)
- Feature: Dedicated LQIP settings tab with enable/disable toggle
- Enhancement: Reorganized admin UI with combined AVIF Tools section
- Enhancement: Consistent stat labels across AVIF and LQIP tools (Images/With/Without)
- Enhancement: Renamed "Test conversion" to "Test AVIF Conversion" for clarity
- Enhancement: Removed beta labels from LQIP feature
- Fix: LQIP stats now correctly count all supported image types (JPEG, PNG, GIF, WebP)
- Dev: Auto-fixed 6,152+ PHPCS issues for WordPress coding standards compliance
0.4.9
- Fix: WordPress Plugin Check compliance — proper escaping, Yoda conditions, and PHPCS ignores
- Fix: Improved uninstall cleanup with object cache awareness
- Dev: Code formatting aligned with WordPress coding standards
0.4.8
- Fix: Resolved logging pipeline issues where REST API couldn't retrieve logs due to
is_admin() check
- Fix: Fixed upload test timeout by temporarily disabling synchronous AVIF conversion during test uploads
- Fix: Improved AJAX feedback for log operations (clear/refresh)
- Docs: Updated minimum requirements to WordPress 6.8 and PHP 8.3
- Docs: Cleaned up README header format for WordPress.org compatibility
- Docs: Removed donate link from readme
- Dev: Added WordPress stubs for improved IDE support
0.4.7
- Enhancement: Improved time formatting in conversion progress display (hh:mm:ss format)
- Enhancement: CLI code formatting improvements
- Fix: Corrected contributor username in readme
0.4.6
- Docs: Added WordPress.org metadata headers
- Docs: Updated tested up to WordPress 6.9
0.4.5
- Fix: Corrected "Upload & Test" status display issues (spinner visibility, status text alignment)
- Fix:
wp avif delete command now correctly reports success/failure counts and handles permission errors
- Fix:
wp avif convert command output now includes count of missing AVIFs
- Enhancement: Added GitHub Action for automated release creation
0.4.4
- Feature: Fully asynchronous "Upload & Test" conversion to prevent timeouts on large images
- Enhancement: Re-architected test conversion to use sequential polling
- Enhancement: Admin UI modularized with template-based architecture
- Optimization: Removed unused
vendor storage and legacy dependencies, reducing plugin size
- Fix: Restored robust queue rendering for test results
0.4.3
- Added WP-CLI commands: status, convert, stats, logs, delete
- Refactored admin interface with modular architecture
- Improved logging and environment diagnostics
0.4.2
- Auto-detection for ImageMagick CLI in "Auto" mode
- REST API replaces admin-ajax for better performance
- Smart -define namespace probing (heic/avif)
- Tested with WordPress 6.9
0.4.1
- Compatibility: Tested up to WordPress 6.9
0.4.0
- Major refactor: strict types, DTOs, dedicated Encoder classes
- Optimized frontend HTML parsing
- Enhanced CLI execution and error handling
- Composer support (PSR-4 ready)
0.3.x
- Environment variable injection for restricted PHP environments
- Original image source handling fixes
- Engine priority: CLI, Imagick, GD
0.2.x
- ImageMagick CLI support with auto-detection
- Memory pre-check to prevent fatal errors
- Logs panel with detailed entries
- Lightbox anchor rewriting
- Chroma subsampling and bit depth options
0.1.x
- Initial release with Imagick/GD support
- ICC profile preservation
- EXIF orientation handling
- Basic admin interface
See
GitHub releases for complete version history.