Dynamic Alt Tags is a WordPress plugin for generating, reviewing, and applying AI-suggested alt text to images.
This plugin is currently owner-maintained by Eric Satzman. Pull requests are welcome, but releases and review cycles may be infrequent.
This project is open source under the MIT license. See LICENSE for the full text.
- Queue-based processing for media library images
- Search tab with live filters, taxonomy filtering, and bulk queue add
- Active Queue review workflow with approve, skip, and generate actions
- Human review before approval if desired
- Per-image actions directly inside WordPress media workflows
- Optional title, caption, and description sync
- Usage metrics
- WordPress
6.2+ - PHP
7.4+ - A reachable Cloudflare Worker endpoint for alt generation
- A Cloudflare account with Workers enabled
- Optional shared secret token between WordPress and the Worker
A free Cloudflare account can be used but a paid plan may be required depending on how many images you process.
- Copy this repo into
wp-content/plugins/dynamic-alt-tags. - Activate Dynamic Alt Tags in WordPress.
- Go to Settings > Dynamic Alt Tags.
- Configure the Cloudflare Worker URL and optional token.
- Click Test Provider Connection.
- Set up and deploy a Cloudflare Worker.
- Paste the Worker URL into Settings > Dynamic Alt Tags.
- Add a shared token if your Worker requires authentication.
- Choose URL mode or direct upload mode.
- Use Run Backfill or queue items from the Search tab.
- Open the Active Queue page to review suggested alt text before approving it.
The plugin expects a Cloudflare Worker that accepts a JSON POST request and returns JSON with alt_text or caption.
Short version:
- Create a Worker with
npm create cloudflare@latest. - Add an
[ai]binding inwrangler.toml. - Optionally add a
WORKER_TOKENsecret. - Deploy the Worker with
npx wrangler deploy. - Paste the Worker URL into WordPress plugin settings.
For the full setup guide, sample Worker code, request/response contract, and URL mode vs direct upload details, see docs/cloudflare-worker.md.
Go to Media > Dynamic Alt Tags.
Generate Alt Text: generate or refresh a suggestionApprove: apply the suggestionSkip Image: move the item to HistoryView Image: open the source image- Top actions:
Run Backfill,Generate Alt Text For Queued,Refresh - Bulk actions:
Approve,Skip Image,Generate Alt Text Run Backfillonly scans for images with empty alt text and adds them to the queue. It does not call the provider by itself.Generate Alt Text For Queuedprocesses queued items visible on the current Active Queue page.
- Grid-style media browser with live search and filters
- Supports bulk select, shift-click range selection, and
Add to Queue - Clicking a thumbnail opens WordPress Attachment Details
- Shows finalized items (
approved,rejected,skipped) - Supports row and bulk
Re-queue
This project is usable and actively maintained.
- The maintainer remains the project owner and final decision-maker for scope and releases.
- Pull requests are welcome for added functionality, bug fixes, security fixes, accessibility improvements, tests, and documentation.
- Large feature work should start with an issue or discussion before code is written.
- Response times may be slow during busy periods.
- Clone the repository into your local WordPress plugins directory.
- Run
composer install. - Activate the plugin in a local WordPress site.
- Configure a Worker URL in plugin settings.
- Run
composer phpcsbefore opening a pull request.
Developer tooling is Composer-based and currently includes PHPCS, WPCS, and PHP compatibility checks.
Release packaging and hosted-updater tooling are intentionally kept outside this public plugin repository.
Run the release script from the local Dynamic Alt Tags config repo instead:
cd /Users/local-esatzman/Desktop/Sites/dynamic-alt-tags/dynamic-alt-tags-config
./build-release.shThe script:
- reads the version from the local plugin repo
- builds
dynamic-alt-tags-<version>.zipfrom the local plugin source - writes the zip to
/Users/local-esatzman/Desktop/Sites/dynamic-alt-tags/plugin-updates/ - copies the current
info.jsonfrom the config repo into that sameplugin-updatesdirectory
Pull requests are welcome. For setup, contribution expectations, and testing guidance, see CONTRIBUTING.md.
Please report security issues privately. See SECURITY.md.
- Bump version to 1.0.8
- Add separate Dashboard settings to show or hide the processed images chart and detailed processing metrics panel
- Keep those Dashboard panels off by default while leaving the Dashboard summary cards visible
- Bump version to 1.0.7
- Add a Direct Upload Image Size setting with Large and Medium options for Cloudflare testing
- Add processed-images history charts to Dashboard and Metrics
- Add selectable chart color styles and expanded day, week, month, and year totals
- Bump version to 1.0.6
- Align self-hosted updater package metadata with the 1.0.6 release build
- Remove the Settings Tools page
Process Queue Nowaction in favor of queue-page processing workflows - Add background processing settings with configurable WP-Cron frequency and images-per-run limits, off by default
- Add an optional
Sync Alt Text to Attachment Captionsetting, off by default
- Prepare the first stable 1.0.x release of Dynamic Alt Tags
- Refresh documentation for current queue, access, metrics, and self-hosted update workflows
- Align self-hosted updater package metadata with the 1.0.5 release build
- Add WordPress 5.8+
Update URIsupport for self-hosted plugin updates - Keep legacy update transient injection for backward compatibility
- Add History bulk re-queue workflow
- Fix History table layout for the new bulk action column
- Count unique attachments in metrics instead of raw processing attempts
- Add Reset Metrics action to the Tools tab
- Add self-hosted updater and native update-page plugin icon support
- Add PNG fallback icon assets
- Initial MVP
readme.txt remains the WordPress.org-compatible readme source.