= 2.7.2 = * fixed: Lazy Load not automatically creating placeholder folder = 2.7.1 = * added: integration with JSON/AJAX respones from Spotlight Social Media Feeds plugin * fixed: img element search parsing JSON incorrectly = 2.7.0 = * changed: PNG placeholders are now inlined for less HTTP requests and better auto-scaling * fixed: LQIP query strings not allowing resize operations * fixed: Lazy Load throws error when ewww_webp_supported not defined in edge cases. * fixed: Lazy Load regression prevents above-the-fold CSS background images from loading * fixed: WebP source images ignored by URL rewriter * fixed: Lazy Load scripts loading for page builders when they shouldn't be * fixed: Easy IO does not rewrite image (href) links if image_downsize integration has rewritten the img tag = 2.6.1 = * added: disable "deep" integration with image_downsize filter via EIO_DISABLE_DEEP_INTEGRATION override * fixed: LQIP query strings not allowing resize operations * fixed: Lazy Load throws error when ewww_webp_supported not defined in edge cases. * fixed: Lazy Load regression prevents above-the-fold CSS background images from loading * fixed: WebP source images ignored by URL rewriter = 2.6.0 = * added: enable -sharp_yuv option for WebP conversion with the EIO_WEBP_SHARP_YUV override * added: Lazy Load for iframes, add 'iframe' in exclusions to disable * added: preserve metadata and apply lossless compression to linked versions of images via Easy IO with EIO_PRESERVE_LINKED_IMAGES constant * added: Easy IO rewrites URLs in existing picture elements * changed: native lazy loading is now enabled for right-sized PNG placeholders, override with EIO_DISABLE_NATIVE_LAZY constant * changed: move Easy IO check-in to wp_cron * fixed: Add Missing Dimensions overwrites smaller width/height attribute if only one is set * fixed: replacing an existing attribute (like width) with a numeric value is broken = 2.5.5 = * fixed: Easy IO's Include All Resources compat with Oxygen Builder and Beaver Builder * fixed: regex to detect SVG images in use elements caused excessive backtracking * fixed: WebP version of full-size image not removed when attachment deleted due to undefined variable * fixed: Easy IO adds invalid zoom parameter of 1920 to srcset URL = 2.5.4 = * fixed: Lazy Load fails to auto-scale with img-crop class for Easy IO * fixed: Lazy Load throws JS error in SCRIPT_DEBUG mode * fixed: warnings due to empty needle in strpos() function call = 2.5.3 = * added: use 'img-crop' id/class, or data-img-crop attribute to force cropping with Easy IO + Lazy Load. * changed: lazysizes script moved to footer of page * changed: use core wp_getimagesize() for proper error handling = 2.5.2 = * fixed: lazy load threshold missing from minified code = 2.5.1 = * change: added setting to enable adding of missing width/height dimensions, disabled by default * fixed: warning from plugins using core wp_lazy_load filter without second parameter/argument = 2.5.0 = * added: ability to use SVG placeholders for more efficient lazy load via EASYIO_USE_SIIP override * added: Easy IO and Lazy Load add missing width and height to image elements * added: Lazy Load - right-sized placeholders can be generated for full-sized images * added: configure Lazy Load pre-load threshold via EIO_LL_THRESHOLD constant * changed: Lazy Load for external (non-inline) CSS images must be configured for specific elements * changed: Easy IO's Include All Resources unlocked for all plans * changed: native lazy loading is now disabled when using Easy IO lazy load, override with EIO_ENABLE_NATIVE_LAZY constant * changed: Lazy Load pre-load threshold increased from 500px to 1000px * changed: Lazy Load picture elements use right-sized img placeholder instead of 1x1 inline GIF * fixed: native iframe lazy load disabled in WP 5.7+ * fixed: removing metadata clobbers APNG animations * fixed: some JSON elements still being altered by Lazy Load * fixed: Easy IO throws warnings when WP content is not in a sub-directory = 2.4.3 = * fixed: syntax error on PHP 7.2 or less = 2.4.2 = * changed: Easy IO supports img tags with SVG images * fixed: error when a class attribute with no value is encountered = 2.4.1 = * fixed: lazy load for external CSS breaking div elements in JS/JSON * removed: JS defer with Easy IO, use SWIS Performance instead: https://ewww.io/swis/ = 2.4.0 = * added: Lazy Load for external CSS and separate style blocks (div elements only for now) * added: Easy IO/CDN rewriting for Ultimate Member AJAX-powered activity wall * changed: better compatibility with Theia Smart Thumbnails * changed: Lazy Load auto-sizing will no longer decrease the image size, only increasing is allowed * changed: filter to include additional HTML element types via eio_allowed_background_image_elements filter for Lazy Load and Easy IO * fixed: compatibility between Easy IO and Autoptimize * fixed: Easy IO uses hard crop when constraining an image via a width/height found in the style attribute * fixed: Easy IO uses hard-coded wp-content/ and wp-includes/ paths in some cases * fixed: Easy IO doubles part of image URL when there are no thumbnails, but one is requested by a plugin or theme * fixed: Easy IO minifier breaks Beaver Builder * fixed: Lazy Load breaks Beaver Builder text editor = 2.3.1 = * changed: Easy IO verification performed via API for better reliability * fixed: Easy IO missing https availability for admin-ajax.php requests when home_url is using plain http * fixed: Easy IO silently fails to rewrite URLs when using CNAME with WP Offload Media * fixed: wp_lazy_loading_enabled filter should have 3 parameters * fixed: Easy IO shows alert for domain change when a non-default WPML language is active = 2.3.0 = * fixed: Easy IO missing https availability for admin-ajax.php requests when home_url is using plain http * fixed: wp_lazy_loading_enabled filter should have 3 parameters * fixed: Easy IO shows alert for domain change when a non-default WPML language is active = 2.2.9 = * added: display total savings on settings page * fixed: Lazy Load breaks JSON-encoded img elements * fixed: Easy IO adds excess markup for images with height and/or width set to 'auto' * fixed: memory_limit check should be case-insensitive: g vs. G * fixed: Easy IO skips images in AJAX Load More requests = 2.2.8 = * fixed: lazy loader not loading = 2.2.7 = * added: alert on domain change for Easy IO, like if you clone from a production environment to staging * changed: Easy IO domain and plan_id refresh automatically when visiting settings page * fixed: error with Lazy Load and AMP = 2.2.6 = * changed: The browser-native portion of the Lazy Load feature obeys the wp_lazy_loading_enabled filter * changed: prevent parsing of sitemap.xml * fixed: Lazy Load placeholders not rewritten for CDN usage by Autoptimize and WP Offload Media Assets Add-on * fixed: ensure video files do not have extra query parameters added = 2.2.5 = * fixed: errors with WP Offload Media 2.4 * fixed: Easy IO hard crops images when requested height/width is 9999 * fixed: Lazy Load parser running on customizer preview pane = 2.2.4 = * added: GIF to WebP conversion with API and Easy IO * added: disable Lazy Load auto-scale by defining EIO_LL_AUTOSCALE as false = 2.2.3 = * fixed: lazy load skips img elements with unquoted src attributes * fixed: sites using S3 fail verification after upgrade = 2.2.2 = * fixed: Lazy Load has nested fall-back img elements if an image is found multiple times in a page * fixed: Easy IO mangles srcset URLs when src URL is relative instead of absolute * fixed: Easy IO URLs leaking into block editor for new uploads = 2.2.1 = * added: EXACTDN_DEFER_JQUERY_SAFE override for when inline scripts depend on jQuery * changed: Easy IO uses better query-string fall-back for plugins * changed: Easy IO enforces https if available rather than protocol-relative URLs = 2.2.0 = * added: defer jQuery also with EXACTDN_DEFER_JQUERY override * added: Lazy Load supports VC grid layouts retrieved via AJAX * fixed: Lazy Load prevents loading of images in oEmbed endpoint * fixed: jQuery exclusion was preventing deferral of jQuery extensions also * fixed: Lazy Load parsing Owl Lazy images * fixed: Easy IO adds srcset/sizes to feeds = 2.1.1 = * added: defer JS with Easy IO via EXACTDN_DEFER_SCRIPTS override * fixed: AMP compatiblity for Lazy Load was broken * fixed: images not loading on WPURP/WPRM print recipe pages = 2.1.0 = * added: Easy IO replaces image URLs within style elements for page builders like Elementor and Divi * changed: potentially expensive db queries disabled by default * fixed: verification fails if server is blocking test.png with a 403 * fixed: Include All Resources rewrites wrong URLs when quotes are html-encoded * fixed: tags do not follow Lazy Load exclusions * fixed: tags broken when excluding images from Lazy Load = 2.0.3 = * fixed: debug_message() throws a warning with non-string values * fixed: notices when parsing JSON data from Envira * fixed: fatal error when a WP_Error is passed from Envira to Easy IO = 2.0.2 = * removed: data-pin-media attribute, as Pinterest is handling WebP images properly now = 2.0.1 = * fixed: data-pin-media attribute added to linked images incorrectly = 2.0.0 = * added: Easy IO sets pre-scaled image in data-pin-media for Pinterest * added: Envira Pro cache cleared when activating Easy IO * fixed: background image lazy-loading could be interrupted by other plugins copying elements * fixed: Easy IO misses some images with Envira Gallery Pro layouts * fixed: missing www in domain prevents rewrites for Easy IO * fixed: Lazy Load parsing X/Pro theme admin pages = 1.9.0 = * added: automatic plan upgrade detection * changed: plugin can be activated network-wide, though configuration is still per-site * updated: embedded help beacon code * updated: lazysizes.js to version 5.2 * fixed: custom domain for Easy IO prevents auto-scaling * fixed: full-width background images auto-scaled due to scroll bars = 1.8.0 = * changed: better compatibility with other implementations of "native lazy load" * fixed: Easy IO detects wrong domain when using separate domains for site and content = 1.7.0 = * added: exclude images from Easy IO in settings * added: exclude images from Lazy Load by string or class name * added: prevent auto-scaling with skip-autoscale * added: exclusions can be defined as overrides (single value as string, multiple values as an array) * fixed: errors due to duplicate ssl= arguments in URLs = 1.6.0 = * added: support background images on a/link elements * fixed: partial wp-content URLs being rewritten for some plugins * fixed: inconsistent settings page links * updated: new version of lazysizes JS = 1.5.0 = * added: disable native lazy-load attributes with EASYIO_DISABLE_NATIVE_LAZY * added: ability to choose LQIP or blank placeholders for lazy load * added: better compatibility with Divi filterable grid images and parallax backgrounds * changed: default to blank placeholders with Easy IO * fixed: Divi builder will not load with Easy IO and Include All Resources active * fixed: image cover block with fixed width scaled too much * fixed: low-quality placeholders sometimes had larger dimensions than necessary * fixed: Slider Revolution dummy.png not properly handled by Easy IO = 1.4.0 = * changed: turn off WebP conversion when premium optimization is disabled * fixed: incorrect debug function in ExactDN class * fixed: wrong translation slug for some strings = 1.3.0 = * added: GCS sub-folder rewriting with ExactDN for cleaner URLs = 1.2.0 = * changed: better URL detection with WP Offload Media activated * changed: lazy placeholders limited to 1920px wide = 1.1.0 = * added: use native loading="lazy" for even better performance * updated: lazysizes core library * fixed: ExactDN incorrectly scales Elementor background images rather than cropping * fixed: ExactDN cannot work with Divi/Elementor background images due to use of external CSS files * fixed: Lazy Load auto-scaling breaks if background image is enclosed in encoded quotes = 1.0.0 = * First release (ported from EWWW Image Optimizer)