Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/drift-creative-systems/drift-wipe/archive/refs/heads/main.zip
Drift: Wipe
Free WordPress plugin by Drift Creative Systems. Plays a full-screen wipe (Fade, Slide Up or Curtain) when a visitor clicks a link to another page on the site. There's no AJAX content swap: the browser does a real navigation and the overlay covers and reveals it, so it works with any theme, plugin, cache or analytics setup as-is.
- WordPress.org slug:
drift-wipe(submission pending) - Licence: GPL-2.0-or-later
- Requires WordPress 6.0+, PHP 7.4+
The user-facing documentation is readme.txt, which WordPress.org displays. This file is for developers.
How it works
- Entrance (page load) is a CSS animation on the overlay, so there's no flash of uncovered content while the script loads.
- Exit (internal link click) is triggered by
assets/wipe.js: it cancels the click, adds.is-leavingto the overlay (which swaps in the exit keyframes), waits foranimationendor 900 ms, whichever comes first, then setswindow.location.href. - Skipped:
#anchors and same-page hash links,mailto:/tel:/javascript:,targetset,download,wp-admin/wp-login.php, other hosts, modified or non-left clicks, clicks another handler already cancelled, and links with theno-transitionclass. prefers-reduced-motion: reduceremoves the overlay and the scroll lock.- On
pageshowwithevent.persisted(back/forward cache) the leaving state is cleared, so the overlay never stays stuck over the page. - Overlay markup is printed on
wp_body_open, so the theme must callwp_body_open(). - Front-end assets, overlay and the
has-drift-wipebody class are all gated bydrift_wipe_is_active(), cached per request.
| Front end | Name |
|---|---|
| Overlay | #drift-wipe-overlay.drift-wipe-overlay[data-wipe-style] |
| Panels | .drift-wipe-overlay__panel--left / --right |
| Body class (scroll lock during entrance) | has-drift-wipe |
| Colour | CSS custom property --drift-wipe-colour |
| Opt-out class | no-transition |
Settings
Settings → Drift: Wipe (options-general.php?page=drift-wipe). Three options, all deleted in uninstall.php on every site in a multisite network:
| Option | Type | Default |
|---|---|---|
drift_wipe_style |
none / fade / slide-up / curtain |
none |
drift_wipe_colour |
hex colour | #111111 |
drift_wipe_skip_front_page |
boolean | true |
Hooks
| Hook | Type | Purpose |
|---|---|---|
drift_wipe_capability |
filter | Capability to view and save the settings. Default manage_options |
drift_wipe_active |
filter | Turn the transition on or off for the current request: ( $active, $style ) |
These are the extension points for a paid add-on, sold outside WordPress.org. Nothing in this plugin is gated.
Development
- Coding standard:
phpcs.xml.dist(WordPress, prefixesdrift_wipe/DRIFT_WIPE). - Run Plugin Check before every release. The PHPCS-based checks don't work in WordPress Playground (its filesystem can't
flock()), so use a real install, e.g. WP-CLI with the SQLite drop-in:wp plugin install plugin-check --activate wp plugin check drift-wipe --include-low-severity-errors --include-low-severity-warnings \ --require=./wp-content/plugins/plugin-check/cli.phpCheck a copy built from
.distignore, not the repo, so dev files don't trip thefile_typecheck. - Directory guidelines review: the
wp-plugin-directory-guidelinesClaude Code skill.
Releasing
- Bump the version in three places: the
Version:header,DRIFT_WIPE_VERSIONandStable tag:inreadme.txt. Add a changelog entry to bothreadme.txtandCHANGELOG.md. - Merge
develop→main, then publish a GitHub release taggedvX.Y.Z. .github/workflows/release.ymlchecks the three versions match, buildsdrift-wipe.zipfrom.distignoreand attaches it to the release.- Once approved on WordPress.org, set the repo variable
WPORG_DEPLOY=trueand the secretsSVN_USERNAME/SVN_PASSWORD. Releases then deploy to SVN automatically, and readme/asset changes onmainsync on their own (wporg-assets.yml).
WordPress.org assets (icon, banners, screenshots) live in .wordpress-org/.
Licence
GPL-2.0-or-later. See LICENSE.
Copyright © 2026 Drift Creative Systems Ltd
Drift Creative Systems Ltd. Registered in England and Wales, company number 17548220. Registered office: 167-169 Great Portland Street, 5th Floor, London W1W 5PF