Title: MediaZard
Author: Harish Bisht
Published: <strong>October 22, 2026</strong>
Last modified: October 23, 2026

---

Search plugins

![](https://ps.w.org/mediazard/assets/banner-772x250.png?rev=3759557)

![](https://ps.w.org/mediazard/assets/icon-256x256.png?rev=3759562)

# MediaZard

 By [Harish Bisht](https://profiles.wordpress.org/harishbisht/)

[Download](https://downloads.wordpress.org/plugin/mediazard.1.0.2.zip)

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

 [Support](https://wordpress.org/support/plugin/mediazard/)

## Description

MediaZard builds a local index of supported WordPress media references. Use it to
understand detected uses before replacing or deleting an attachment. A missing reference
is not proof that a file is unused.

#### Free features

 * Overview, Media Library, Scan, Possibly Unused, Bulk Cleanup, Replace Media, 
   Diagnostics and Settings screens.
 * Used On information in the native Media Library, attachment details and attachment
   edit screen.
 * Indexed usage, MIME type and original-file size filters, plus title/filename 
   search and upload-month filtering in the plugin’s Media Library.
 * Batched full scans with saved progress, pause, resume and reset; targeted updates
   after supported native edits.
 * Supported post-content attachment IDs and local upload URLs, featured images,
   site logo and site icon detection.
 * Basic Elementor saved-data detection for supported Image, Image Box and self-
   hosted Video controls on ordinary posts/pages.
 * Attachment-specific deletion checks and deliberate administrator review for single
   and selected bulk permanent deletion.
 * Same-extension replacement of supported local raster images, with validation,
   operation locks, temporary rollback backups and recovery controls.

No Pro code, paid feature gate, license service or subscription is included.

#### Understand the statuses

 * Used: at least one supported reference was detected. Details distinguish confirmed,
   probable and weak evidence.
 * Possibly Unused: current supported coverage found no qualifying reference. Unsupported
   uses can still exist; review the file and keep a backup before deletion.
 * Scan Needed or Unknown: coverage is absent, incomplete, stale or unavailable.
   Finish the required scan or pending targeted updates before relying on the index.

Protection uses supported evidence and current permissions. It cannot guarantee 
every use is detected or that deletion will not break content.

#### Scanning

Open Media > MediaZard > Scan, start a full scan and keep that screen open while
batches run. Progress is saved on the server. Pause or return to resume an interrupted
run; without JavaScript, use Continue one batch. Closing the screen stops new browser
batch requests. Free has no scheduled full scans.

Supported native changes queue bounded targeted updates. Edits while inactive, direct
database/file changes, changed attachment mappings and unsupported integrations 
can require a new full scan. Media Library browsing does not start a site-wide scan.

#### Deletion

Administrators with the required attachment permissions can review one attachment
or up to 100 explicitly selected attachments. Bulk work runs in groups of at most
five. Used items require Delete anyway and additional confirmation. Single permanent
deletion requires the attachment ID; bulk permanent deletion requires the displayed
DELETE count. Unknown, restricted, busy or recovery-blocked items cannot be confirmed.

Delete anyway can remove media used in content, Elementor, featured images or site
identity and break those uses. Permanent deletion uses WordPress APIs, creates no
media backup and does not repair content/settings. Cancellation keeps remaining 
bulk items. Inspect interrupted in-flight items before a fresh review. Direct SQL/
file deletion and other code removing guard hooks are outside these safeguards.

#### Replacement

Replace local JPEG, PNG, WebP, GIF or AVIF images only when WordPress and the server
image editor support the format. Use the exact same extension: .jpg and .jpeg are
not interchangeable. The limit is the lower of 32 MiB and the WordPress upload limit;
images above 40 million pixels are rejected. Remote/offloaded files, SVG, PDF, audio
and video replacement are unsupported.

Successful replacement preserves the attachment ID, original stored URL/path, title,
caption, description and alt text, and regenerates metadata/subsizes. A required
failure aborts or restores the previous file/metadata. Unresolved recovery blocks
new replacement/deletion. Temporary rollback files are transaction recovery, not
a general backup service. Separate page, browser or CDN caches may need their own
purge; delivered image URLs can include a cache revision.

If an interrupted operation or temporary-file cleanup leaves a recovery record, 
open Tools > Replacement Recovery, or follow Review recovery on the attachment’s
Replace Media screen. Confirm the attachment ID and recovery acknowledgement. Recovery
uses the existing verified record to restore an interrupted file/metadata mutation
or clear completed temporary backups. It cannot start a new replacement. Use the
guided Replace Media workflow for ordinary replacement.

#### Limitations

 * Detection covers supported patterns, not every database field or file.
 * Content covers posts, pages and supported public/publicly-queryable custom post
   types; internal plugin records are excluded. WooCommerce product content and 
   featured images use these core rules; product galleries, variations and taxonomy
   images have no dedicated scanner.
 * Elementor reads saved JSON on ordinary builder posts/pages, including native 
   layout children. Templates, pop-ups, theme-builder documents, backgrounds, overlays,
   galleries/carousels, dynamic/global controls and third-party widget schemas are
   excluded.
 * Arbitrary custom fields, theme/plugin options, custom CSS, custom code and external-
   site uses can be missed. Ambiguous/over-limit sources do not become current successful
   coverage.
 * Offloaded files, CDN/rewritten URLs and unsupported local URL mappings may not
   resolve.
 * Original-file size totals exclude thumbnails, unknown sizes and other files; 
   they do not promise recovered storage.
 * Network-wide activation, cross-site scanning and multisite network management
   are unsupported. Activate on an individual site only.
 * Settings is read-only and describes enforced policy. There are no image conversions,
   scheduled full scans or unattended ordinary-media cleanup. Verified WordPress
   temporary installer ZIPs have separate bounded cleanup/recovery; ordinary user
   media is excluded.

#### Privacy and external services

Scanning and reference analysis run inside the site’s WordPress installation. This
plugin has no telemetry, analytics, cloud scanning, external license validation 
or custom remote updater. It does not send scan content, filenames, usage statistics
or site identifiers to an external service.

The local database stores attachment IDs, MIME types, original-file sizes, upload-
relative paths, detected source IDs/contexts/confidence and scan state. Local options/
transients hold pending work, user/session-bound confirmation state, bounded outcomes
and short diagnostic codes. The latest protection event includes attachment ID, 
administrator user ID and UTC time. Replacement recovery can retain local file/metadata
snapshots and protected temporary backups until cleanup succeeds.

Admin previews use WordPress media URLs; existing site/CDN configuration and third-
party hooks can affect their delivery. Optional LiteSpeed integration requests a
local plugin cache purge through WordPress hooks; this plugin makes no separate 
service request. WordPress’s own update checks, hosting logs and other plugins are
outside this statement. MediaZard enables no persistent production debug log.

#### Data retention

Deactivation keeps plugin data and invalidates freshness because edits cannot be
observed while inactive. Uninstall retains all plugin tables, options, scan progress,
pending work, recovery records and media files. Free has no remove-data-on-uninstall
setting and performs no automatic purge. WordPress can expire transients normally.
If you want to remove retained data, plan a separate backed-up cleanup and resolve
recovery records first.

## Screenshots

[⌊Run a full scan to find detected media references across supported content and
track scan completion.⌉⌊Run a full scan to find detected media references across
supported content and track scan completion.⌉[

Run a full scan to find detected media references across supported content and track
scan completion.

[⌊See detected usage counts directly in the WordPress Media Library and identify
files that need an index update.⌉⌊See detected usage counts directly in the WordPress
Media Library and identify files that need an index update.⌉[

See detected usage counts directly in the WordPress Media Library and identify files
that need an index update.

[⌊Review detected sources, usage contexts, and match confidence. Open the linked
content to inspect or edit it.⌉⌊Review detected sources, usage contexts, and match
confidence. Open the linked content to inspect or edit it.⌉[

Review detected sources, usage contexts, and match confidence. Open the linked content
to inspect or edit it.

[⌊Compare Used and Possibly Unused files, inspect detected references, and review
each file before cleanup.⌉⌊Compare Used and Possibly Unused files, inspect detected
references, and review each file before cleanup.⌉[

Compare Used and Possibly Unused files, inspect detected references, and review 
each file before cleanup.

[⌊Check detected usage and deletion warnings, then choose whether to keep the file
or proceed to a separate deletion confirmation.⌉⌊Check detected usage and deletion
warnings, then choose whether to keep the file or proceed to a separate deletion
confirmation.⌉[

Check detected usage and deletion warnings, then choose whether to keep the file
or proceed to a separate deletion confirmation.

[⌊Upload a replacement image with the same file extension while preserving its attachment
ID and existing attachment details.⌉⌊Upload a replacement image with the same file
extension while preserving its attachment ID and existing attachment details.⌉[

Upload a replacement image with the same file extension while preserving its attachment
ID and existing attachment details.

## Installation

Back up the database and uploads before replacement or permanent cleanup.

#### Install from the WordPress Plugin Directory

 1. Open Plugins > Add New Plugin in your WordPress dashboard.
 2. Search for MediaZard and choose the plugin by Harish Bisht.
 3. Click Install Now, then Activate.

#### Install the ZIP manually

 1. Open Plugins > Add New Plugin > Upload Plugin.
 2. Select the installable mediazard ZIP, click Install Now, then Activate.
 3. Alternatively, extract the ZIP and upload its mediazard folder to wp-content/plugins/,
    then activate it from Plugins.

#### Start reviewing media

 1. Open Media > MediaZard. Diagnostics shows plugin 1.0.2 and schema 3.
 2. Start a full scan and keep its page open until it completes. Let pending targeted
    updates finish before relying on usage results.
 3. Use the Media Library and Detected Media Usage screens to inspect references. Reset
    can discard an incomplete scan; live references are retained until a completed 
    scan reconciles them.
 4. Review the usage details and detection limits before deletion or replacement. Test
    destructive operations on staging first.

Requires WordPress 6.5+ and PHP 7.4+. Replacement needs writable/readable local 
uploads, a supported WordPress image editor and permission to upload/edit the attachment.
Scanning/deletion/replacement require the relevant administrator and object capabilities.
Elementor is optional; saved basic detection remains available when it is inactive
or removed.

## FAQ

### Does Possibly Unused mean a file is safe to delete?

No. It means supported scanners found no qualifying reference under current coverage.
Unsupported uses can exist. Review the attachment and keep your own backup.

### Can I delete a Used image?

Yes, through deliberate single or bulk administrator Delete anyway review if permissions
and current checks pass. Deletion is permanent, can break uses and does not fix 
content automatically.

### Can this plugin restore a permanently deleted image?

No. Restore from your own backup. Replacement rollback applies only to replacement
transactions.

### Does a scan continue after I close the browser?

No new browser batches are sent. Saved progress can be resumed. Free does not schedule
full scans.

### Does it detect every Elementor or WooCommerce image?

No. Only the basic controls and core content/featured-image rules above are supported.
Deep builder/commerce relationships are outside Free coverage.

### Does it send data to you or remove data on uninstall?

No telemetry is included. Uninstall retains local plugin data and media. See Privacy
and Data retention above.

### Can I replace a PDF or convert a JPEG to WebP?

No. Replacement is limited to the exact same extension of supported local raster
images.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MediaZard” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Harish Bisht ](https://profiles.wordpress.org/harishbisht/)

[Translate “MediaZard” into your language.](https://translate.wordpress.org/projects/wp-plugins/mediazard)

### Interested in development?

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

## Changelog

#### 1.0.2

 * Prepare MediaZard for its initial WordPress Plugin Directory submission.
 * Provide local usage indexing, batched scans, basic Elementor detection, and guided
   single/bulk deletion and image replacement.
 * Validate protected operations with capability checks, action-specific nonces,
   and deliberate confirmation.
 * Include filter and diagnostic form protection, replacement recovery, and data-
   retaining uninstall.
 * Use native installer completion receipts for verified package cleanup without
   caller-stack inspection.
 * Preserve PHP’s original temporary upload path and protect the recovery inspection
   form.

## Meta

 *  Version **1.0.2**
 *  Last updated **3 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [attachments](https://wordpress.org/plugins/tags/attachments/)[media](https://wordpress.org/plugins/tags/media/)
   [media library](https://wordpress.org/plugins/tags/media-library/)[replacement](https://wordpress.org/plugins/tags/replacement/)
   [usage](https://wordpress.org/plugins/tags/usage/)
 *  [Advanced View](https://wordpress.org/plugins/mediazard/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/mediazard/reviews/)

## Contributors

 *   [ Harish Bisht ](https://profiles.wordpress.org/harishbisht/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/mediazard/)