Title: Bitflw Media Settings
Author: aponahmed
Published: <strong>September 20, 2026</strong>
Last modified: September 20, 2026

---

Search plugins

![](https://ps.w.org/bitflw-media-settings/assets/banner-772x250.png?rev=3703826)

![](https://ps.w.org/bitflw-media-settings/assets/icon-256x256.png?rev=3703826)

# Bitflw Media Settings

 By [aponahmed](https://profiles.wordpress.org/aponahmed/)

[Download](https://downloads.wordpress.org/plugin/bitflw-media-settings.2.9.5.zip)

 * [Details](https://wordpress.org/plugins/bitflw-media-settings/#description)
 * [Reviews](https://wordpress.org/plugins/bitflw-media-settings/#reviews)
 *  [Installation](https://wordpress.org/plugins/bitflw-media-settings/#installation)
 * [Development](https://wordpress.org/plugins/bitflw-media-settings/#developers)

 [Support](https://wordpress.org/support/plugin/bitflw-media-settings/)

## Description

Bitflw Media Settings helps administrators fix broken entries in the WordPress Media
Library.

Features:

 * Detects attachments whose file is missing from disk and adds an “Upload Missing
   File” box to the attachment edit screen.
 * Adds a “Replace Image” column to the Media Library list so any existing file 
   can be swapped out, with image sizes regenerated automatically.
 * A “Media Settings” page under Media lets you register custom image sizes (name,
   width, height, hard crop with a 9-point crop anchor) without editing theme code.
 * An AJAX-driven media generator backfills any registered size (built-in or custom)
   across the existing library, with a live progress bar and an option to skip images
   that already have the size.
 * A “Media Health” panel on the Media Settings page shows your total media count
   and lets you check for missing attachments or scan for orphaned image files (
   files on disk with no Media Library entry) on demand, linking through to a repair
   list only when something is actually found.
 * A “WebP Support” panel lets you enable WebP thumbnail generation (with a quality
   slider) for new uploads, and convert your existing media library’s thumbnails
   to WebP with one click.
 * A “Help” page (linked from Media Settings) walks through what each feature does;
   new activations are taken there automatically once, as a quick tour.

## Screenshots

[⌊Registered Image Sizes: every core, theme, and custom size in one table, with 
an inline toolbar for adding a new one.⌉⌊Registered Image Sizes: every core, theme,
and custom size in one table, with an inline toolbar for adding a new one.⌉[

Registered Image Sizes: every core, theme, and custom size in one table, with an
inline toolbar for adding a new one.

[⌊Generate Media: backfill any registered size across your existing library, with
an option to skip images that already have it.⌉⌊Generate Media: backfill any registered
size across your existing library, with an option to skip images that already have
it.⌉[

Generate Media: backfill any registered size across your existing library, with 
an option to skip images that already have it.

[⌊WebP Support: enable WebP thumbnails, set the quality, and convert your existing
library with one click.⌉⌊WebP Support: enable WebP thumbnails, set the quality, 
and convert your existing library with one click.⌉[

WebP Support: enable WebP thumbnails, set the quality, and convert your existing
library with one click.

[⌊Media Health: total media count plus on-demand scans for missing attachments and
orphaned image files.⌉⌊Media Health: total media count plus on-demand scans for 
missing attachments and orphaned image files.⌉[

Media Health: total media count plus on-demand scans for missing attachments and
orphaned image files.

## Installation

 1. Upload the `bitflw-media-settings` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the “Plugins” menu in WordPress.
 3. Missing attachments and orphaned image files can be managed from the Media Health
    panel on Media > Media Settings, or directly on an attachment’s edit screen for
    a single missing file.

## FAQ

### Does this plugin store any custom data?

It updates the `_wp_attached_file` post meta and attachment metadata that WordPress
core already manages for the attachment being repaired, and keeps your custom image
size definitions and WebP settings in two options (`bitflw_mr_custom_image_sizes`,`
bitflw_mr_webp_settings`). No custom database tables are created, and both options
are removed automatically if you delete the plugin.

### Who can use the upload/replace features?

Any user with the `upload_files` capability can upload a replacement file. The “
Missing Attachments”, “Media Settings”, and media generator screens all require `
manage_options`.

### Does removing a custom size delete the files already generated for it?

Yes. Deleting a custom size also removes every already-generated copy of it across
your media library (the file and its metadata entry on each attachment), since a
removed size should never be served to visitors again. This does not apply to WordPress’s
own built-in sizes (thumbnail, medium, medium_large, large) or sizes registered 
by your theme/another plugin — only sizes you added through this screen.

### Why isn’t “Missing Attachments” in the Media menu anymore?

It’s still there as a page, just not as a visible menu item — the Media Health panel
on Media > Media Settings shows a live count and a “Repair Now” link straight to
it once a scan actually finds something, rather than a permanent menu entry for 
a screen most sites never need. The same applies to the new “Orphaned Images” page.

### What is an “orphaned image”?

The reverse of a missing attachment: an image file that exists in your uploads folder
but has no matching entry in the Media Library (for example, left behind by a theme
switch, a failed import, or manual FTP uploads). The Media Health panel’s “Scan 
for Orphaned Images” button finds these; from the resulting list you can add a file
to the Media Library properly or delete it from the server.

### Does WebP Support convert my original uploaded files?

No, by design. It only affects generated thumbnail sizes (thumbnail, medium, large,
and any custom sizes), the same way WordPress core’s own built-in WebP support works—
your original uploaded JPEG/PNG file is never touched, so nothing that links directly
to it ever breaks. Converting existing images regenerates their thumbnails with 
WebP versions; the old JPEG/PNG thumbnail files this leaves behind are no longer
referenced and will show up as orphaned files, which you can clean up from the Media
Health panel’s orphan scanner.

### Does WebP Support work on any hosting?

It needs your server’s PHP image library (GD or Imagick) to support WebP encoding.
If it doesn’t, the WebP Support panel shows a warning and the setting simply has
no effect until your host enables it — nothing breaks either way.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Bitflw Media Settings” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ aponahmed ](https://profiles.wordpress.org/aponahmed/)

[Translate “Bitflw Media Settings” into your language.](https://translate.wordpress.org/projects/wp-plugins/bitflw-media-settings)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bitflw-media-settings/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bitflw-media-settings/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bitflw-media-settings/)
by [RSS](https://plugins.trac.wordpress.org/log/bitflw-media-settings/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.9.5

 * Prefixed both AJAX action names (`wp_ajax_upload_missing_attachment`  `wp_ajax_bitflw_mr_upload_missing_attachment`,`
   wp_ajax_replace_existing_image`  `wp_ajax_bitflw_mr_replace_existing_image`) 
   to rule out collisions with other plugins.
 * Fixed: replacing a file for an attachment with no `_wp_attached_file` meta (e.
   g. one already missing) could resolve the destination folder to the current working
   directory instead of the uploads folder. The destination is now always confirmed
   to be inside the uploads directory, falling back to its base folder otherwise.
 * Updated Contributors to the WordPress.org account this plugin is submitted under.

#### 2.9.4

 * Resolved every finding reported by the WordPress.org Plugin Check tool: switched`
   unlink()`/`rename()` calls to `wp_delete_file()` where a like-for-like swap was
   possible, sanitized a couple of AJAX inputs at the point they’re read instead
   of only downstream, fixed a possibly-undefined `$_FILES` index check, and added
   justification comments (`phpcs:ignore`) on the handful of direct database queries
   and one `rename()` call that have no WordPress-API equivalent for what they do(
   a LIKE search inside serialized attachment metadata, and a local file move within
   the uploads folder).

#### 2.9.3

 * Renamed the PHP namespace from `Bitflw\MediaRepair` to `Bitflw\MediaSettings`
   to match the plugin’s new name (internal change only, no effect on stored options
   or behavior).

#### 2.9.2

 * Plugin folder, main file, asset files (CSS/JS), and text domain renamed from “
   bitflw-media-repair” to “bitflw-media-settings” to match the display name. Deactivate
   and reactivate the plugin after updating, since the main file name changed.

#### 2.9.1

 * Renamed the plugin from “Bitflw Media Repair” to “Bitflw Media Settings” (display
   name only – the plugin folder/file and text domain are unchanged, so no reactivation
   is needed).
 * Added Author URI (https://bitflw.com/).
 * uninstall.php now actually removes the plugin’s options (bitflw_mr_custom_image_sizes,
   bitflw_mr_webp_settings, bitflw_mr_activation_redirect) instead of just documenting
   that there was nothing to clean up, which was no longer true once those options
   existed.

#### 2.9.0

 * Added a “Help” page: a plain-language tour of every feature (fixing missing attachments,
   replacing images, custom sizes, Media Health, WebP Support), each pointing straight
   to where it lives. Not shown in the admin menu – reached via a “Help” link on
   the Media Settings page.
 * New activations are now taken to the Help page automatically, once, the standard
   first-run introduction pattern. Skipped on bulk plugin activation.

#### 2.8.4

 * The Media Library grid view’s “Replace Image” button now uses the exact same 
   icon as the list view’s Replace Image column (previously a generic dashicon),
   including the same hover effect. Both are now sourced from one shared method 
   so they can’t drift apart.

#### 2.8.3

 * Renamed the “Image Sizes” menu item and page to “Media Settings”, reflecting 
   that it now covers Generate Media, Media Health, and WebP Support too, not just
   image sizes.

#### 2.8.2

 * Fixed: the Quality slider’s track was flat gray with no colored “filled” portion,
   so it looked disconnected from the accent color used everywhere else. It now 
   shows a filled progress track (following the site’s admin color scheme, same 
   as the rest of the plugin) up to the current value, in both WebKit/Blink and 
   Firefox.

#### 2.8.1

 * WebP Support: the Quality field is now a slider with a live value readout instead
   of a number input.

#### 2.8.0

 * Added the “Replace Image” button to the Media Library’s Grid view too (top-right
   corner of each thumbnail, shown on hover) – previously it only appeared in List
   view. Uses the same upload endpoint and now shows a toast on success/failure 
   instead of nothing.

#### 2.7.1

 * WebP Support: removed the separate JPEG/PNG checkboxes – enabling WebP now always
   converts both, since there’s no real reason to only allow one format.
 * Fixed: “Convert Existing Images” showed its progress inside the Generate Media
   card instead of the WebP Support card it was clicked from. It now has its own
   progress bar and error log local to that panel.

#### 2.7.0

 * Added a “WebP Support” panel to the Image Sizes page: enable/disable WebP thumbnail
   generation, a quality setting, per-format (JPEG/PNG) toggles, and a “Convert 
   Existing Images” action that regenerates thumbnails across the whole library 
   as WebP. Built on WordPress core’s own `image_editor_output_format`/`wp_editor_set_quality`
   filters (introduced in WP 5.8 for this exact purpose) rather than a custom conversion
   pipeline – only generated thumbnails are affected, never the original uploaded
   file. Shows a warning if the server’s image library doesn’t support WebP encoding.

#### 2.6.1

 * Fixed: “Add to Library” used .button-primary, which inherits the site’s admin
   theme accent color – on a red/orange scheme it looked just as alarming as the
   red “Delete” button next to it. It now uses a fixed, non-themeable green so it
   always reads as the safe action.
 * Orphaned Images: long file paths now truncate with an ellipsis (full path on 
   hover) instead of wrapping awkwardly across two lines; added a divider under 
   the bulk-actions toolbar and a border around thumbnails.

#### 2.6.0

 * Orphaned Images page: added checkboxes, a “select all” control, and bulk “Add
   Selected to Library” / “Delete Selected” actions instead of one-at-a-time only.
 * Replaced every native browser alert() and confirm() across the plugin’s upload/
   replace/orphan flows with an in-page toast notification and the shared confirm
   modal.
 * Restyled the Missing Attachments page to match the rest of the plugin (page header
   with a live count pill, card/table layout, progress bar for uploads) instead 
   of a bare, unstyled table.
 * Fixed “Add to Library” reading as a destructive/red action on sites using a red
   admin color scheme – it’s now a clearly primary (filled) button, distinct from
   the outlined red “Delete” actions.

#### 2.5.0

 * Removed “Missing Attachments” from the Media admin menu (the page itself still
   exists, just reached via a link instead of a permanent menu entry).
 * Added a “Media Health” panel to the Image Sizes page: total media count, an on-
   demand “Check for Missing Attachments” scan, and a new “Scan for Orphaned Images”
   feature that finds image files on disk with no Media Library entry.
 * Added a new “Orphaned Images” page (also not in the menu, reached via the panel)
   listing every orphaned file found, each with “Add to Library” and “Delete File”
   actions.

#### 2.4.1

 * Replaced the browser’s native confirm() prompt for deleting an image size with
   an in-page modal matching the rest of the screen’s design.

#### 2.4.0

 * Deleting a custom image size now also removes every already-generated copy of
   it from disk (file + metadata) across the whole media library, so a removed size
   can’t keep being served. Runs as a live-progress background pass right after 
   the size is removed, the same way the media generator does.

#### 2.3.3

 * The crop-anchor picker (trigger button and popover) now only shows up once “Hard
   crop” is checked, since the position has no effect otherwise.

#### 2.3.2

 * The “N sizes registered” pill now updates immediately after adding or deleting
   a size via AJAX, instead of only on page reload.
 * Restyled the Delete action as a small square × icon button, matching the crop-
   anchor trigger’s visual style.

#### 2.3.1

 * Fixed: the Stop button (and other hidden elements sharing WordPress core’s .button
   class) failed to hide because core’s `.button { display: inline-block }` rule
   silently overrode the browser’s default `[hidden]` behavior.
 * The Image Sizes page content now centers on wide screens instead of hugging the
   left edge.

#### 2.3.0

 * Redesigned the Image Sizes screen: two-column layout (sizes table + Generate 
   Media sidebar), an inline toolbar for adding a size instead of a table row, a
   compact popover for the crop-anchor picker, a live “N sizes registered” count,
   and inline live stats/percent while generating.

#### 2.2.1

 * Fixed: regenerating a single size with “Skip images that already have this size”
   checked (the previous default) would silently keep an image’s old crop instead
   of applying a newly chosen crop position, since it only checked whether the size
   existed, not whether it matched the current settings. The checkbox now defaults
   to off.

#### 2.2.0

 * Added a 9-point crop anchor picker: when “Hard crop” is checked while registering
   a new size, choose which part of the image (corners, edges, or center) stays 
   after cropping, matching add_image_size()’s own (x, y) crop-position support.

#### 2.1.1

 * Reworked the Image Sizes screen layout: the “add size” form now lives inline 
   as the table’s first row instead of a separate sidebar card, avoiding a height-
   mismatch layout bug and keeping everything in one panel.
 * Image Sizes screen now follows WordPress’s per-user Admin Color Scheme for its
   accent color instead of a fixed blue.

#### 2.1.0

 * Added an “Image Sizes” admin page to register custom image sizes (name, width,
   height, hard crop) directly from the dashboard.
 * Added an AJAX-driven media generator that backfills any registered size (built-
   in or custom) across the existing library, with a live progress bar, per-item
   error log, and a “skip existing” option.

#### 2.0.0

 * Rebuilt with an object-oriented architecture (namespaced classes under `Bitflw\
   MediaRepair`, PSR-4-style autoloading).
 * Added `upload_files` capability checks to both AJAX handlers.
 * Fixed a broken inline `<style>` block used to highlight the missing-file meta
   box.
 * Renamed the plugin, its files, and its assets under the Bitflw namespace.

#### 1.0.4

 * Previous release (Attachment Re-Upload).

## Meta

 *  Version **2.9.5**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [attachments](https://wordpress.org/plugins/tags/attachments/)[images](https://wordpress.org/plugins/tags/images/)
   [media](https://wordpress.org/plugins/tags/media/)[upload](https://wordpress.org/plugins/tags/upload/)
 *  [Advanced View](https://wordpress.org/plugins/bitflw-media-settings/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bitflw-media-settings/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bitflw-media-settings/reviews/)

## Contributors

 *   [ aponahmed ](https://profiles.wordpress.org/aponahmed/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bitflw-media-settings/)