WordPress Plugins

Image

I’ve built a handful of WordPress plugins for my own use, mostly around mapping, content tooling, and cleaning up the legacy bits of a long-running blog.

Only Mapthread is published to the official WordPress.org Plugin Directory. The rest live on GitHub; you can download the latest release directly from each repository.


Mapthread

GitHub · WordPress.org · Randomwire

Interactive map-based storytelling for WordPress. Upload a GPX track, drop waypoints into your post, and the map automatically pans and zooms to follow along as readers scroll through the story. Built for travel blogs, hiking journals, cycling routes, and historical narratives, with support for Mapbox, Thunderforest, JawgMaps and Stadia Maps tile layers alongside the default OpenStreetMap. Includes an elevation profile, fullscreen mode, and a mobile layout with a dismissible sticky map.

Map Blocks

GitHub

Lightweight Gutenberg blocks for embedding Leaflet maps in posts and pages, driven by Advanced Custom Fields. Three blocks are included:

  • Post Map: displays a single pin for an individual post.
  • Category Map: shows all posts in a category on a clustered map, rendered on category archive pages.
  • Archive Map: shows every post that has a location on a single clustered map.

Requires Advanced Custom Fields, a Mapbox access token, and a Google Maps API key.

Archive Blocks

GitHub

A set of Gutenberg blocks for displaying post archives in a simple format:

  • On This Day – Show posts published on this day in previous years.
  • Monthly Archives – Display posts grouped by month in a compact format.
  • Popular Terms – Display your most-used categories or tags.
  • Popular Posts – Display top posts by views using Jetpack Stats data.
  • Category Nav Buttons – Display categories as filter buttons linking to archive pages.

Useful for building a /archive page or a sidebar index without writing custom queries. Also registers a /random permalink that redirects to a random post.

Media Cleanup Kit

GitHub

A WordPress admin plugin for auditing and cleaning up large media libraries. Adds a page under Tools > Media Cleanup Kit with nine modular scanners, each following the same scan, review, apply flow:

  • Find Broken Images – scans posts for image references whose underlying file is missing on disk.
  • Restore Full Size – swaps smaller sized variants to the full-size original when one exists.
  • Repair Image Blocks – fixes Gutenberg wp:image blocks with missing metadata.
  • Flatten Uploads – moves files out of year/month subdirectories and rewrites post URLs.
  • Import Orphan Files – imports uploads-folder images that aren’t in the media library.
  • Delete Unused Files – removes images and thumbnail variants that nothing in WordPress references.
  • Replace Low-Res Images – matches low-resolution images against higher-resolution originals on your workstation via a bundled CLI.
  • Replace Flickr Images – pulls the largest available version of Flickr-hosted images via the API and swaps them in place.
  • Attach Unparented Media – links orphaned attachments to the first post that references them.

Content Cleanup Kit

GitHub

A WordPress admin plugin that audits and fixes accumulated HTML debt in post content. Adds a page under Tools > Content Cleanup Kit with a scan, review, apply workflow, side-by-side diffs, and a WordPress revision saved for every applied fix. Covers:

  • Deprecated tags: rewrites <b>, <i>, <font>, <center> and similar to modern equivalents.
  • Heading structure: strips redundant formatting from headings, removes empty headings, flags skipped levels.
  • Links: adds rel="noreferrer noopener" to unsafe target="_blank", upgrades internal http:// to https://, converts absolute internal links to root-relative, flags broken internal links.
  • Inline styles: removes junk copy-paste spans and stray inline styles, flags arbitrary colours and font sizes.
  • Structural issues: converts deprecated <a name> anchors to id, removes spacer paragraphs and empty wrappers, flags nested or invalid nesting.
  • Encoding and characters: repairs mojibake, converts typographic entities to real characters, normalises mixed straight and curly quotes.
  • External resources and accessibility: upgrades insecure iframes, modernises legacy YouTube embeds, flags hotlinked images, missing alt text, generic link text, and tables without headers.

Heading Cleaner

GitHub

Scans posts and pages for broken heading hierarchies (H4 used where an H2 belongs, missing H3s, etc.) and safely rewrites them to a clean H2-first outline. Works with both Gutenberg blocks and Classic/HTML content, and every change creates a WordPress revision so you can roll back any edit.

No Category Permalink

GitHub

Removes the /category/ base from category URLs, so example.com/category/travel/ becomes example.com/travel/. Handles the rewrite rules and redirects without breaking pagination or feeds.

Search Permalink

GitHub

Transforms WordPress search URLs from /?s=search+term into clean /search/search-term/ URLs for better SEO and shareability. A single-purpose plugin with no settings page.


Disclaimer

These plugins are provided free of charge, as-is, and without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. In no event shall the author be liable for any claim, damages, data loss, or other liability arising from the use of these plugins.

They’re shared in the hope they’ll be useful, but you use them at your own risk. Always back up your site before installing any new plugin, and test on a staging environment first.

All plugins are licensed under the GNU General Public License v2 or later. Bug reports and pull requests are welcome on the relevant GitHub repository. Response times vary; this is a side project.