WordPress 7.1 Compatibility & Settings Screen Fixes
Disabled sizes came back on WordPress 7.1
Two code paths ask wp_get_missing_image_subsizes() what still needs generating and skip the intermediate_image_sizes_advanced filter entirely:
- the long-standing post-upload recovery pass in
wp_update_image_subsizes(), and - 7.1's client-side media processing, where the browser reads the missing list from the REST create response, generates those sizes locally and sideloads them back.
A size switched off in this plugin was regenerated anyway. That list is now filtered too, so a disabled size stays disabled in both paths. Protected site icon sizes are excluded from the disabled set, so a stale setting saved by an older version can never reach it.
The bulk delete could remove companion originals
WordPress 7.1 stores companion files beside the main image: original_image (the pre-scale upload), source_image (for example the HEIC a JPEG was derived from), and animated_video / animated_video_poster (what an animated GIF is converted to). 7.1 can also register one physical file under several size names, so a size entry may point straight at one of these — and deleting it left the attachment referencing a file that no longer exists.
Those files are now protected. The size entry is still removed from the metadata; the shared file stays on disk.
The dimensions column was blank for two built-in sizes
The settings screen showed no dimensions at all for 1536x1536 and 2048x2048. WordPress registers those two with add_image_size() on plugins_loaded and never creates the *_size_w / *_size_h options the screen was reading.
Dimensions now come from wp_get_registered_image_subsizes(). Those two are also the only built-in sizes remove_image_size() can drop from the registry — which is exactly what disabling them here does — so the fixed dimensions core names them after are kept as a fallback. Without it, a disabled size would lose its dimensions again, or disappear from the list entirely and become impossible to re-enable.
Smaller display fixes
- An unconstrained axis now reads
autoinstead of0px, so Medium Large shows as 768px × auto. That size is 768px wide at whatever height preserves the aspect ratio. - The multiplication sign renders correctly. The
×entity was being passed throughesc_html(), so the column was literally showing the text×.
Verification
Verified against WordPress 7.1 with 31 checks covering the missing-subsizes filter, the protected-size exclusion, both the registered and the disabled-and-unregistered dimension paths, and the legacy false values an older version could have stored. Plugin Check reports no errors.
Full Changelog: v1.2.0...v1.3.0