considbrs-webdev / easy-quicklinks
WordPress plugin that adds support for top level quick link redirect in the post quick edit.
Package info
github.com/Considbrs-Webdev/easy-quicklinks
Type:wordpress-plugin
pkg:composer/considbrs-webdev/easy-quicklinks
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: ^9.6
- yoast/phpunit-polyfills: ^2.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-04 21:08:44 UTC
README
A WordPress plugin that lets editors assign short, top-level redirect slugs to pages, and optionally other post types, directly from the post quick edit panel.
How it works
A quick link is a short, memorable path (e.g. /link) that redirects visitors to an existing page regardless of where that page lives in the page hierarchy. The redirect is a 302 Temporary Redirect by default (see Settings).
- A new Quick Link column appears in the list of every enabled post type.
- Editors set or clear the slug via the built-in Quick Edit panel.
- On the frontend, any matching top-level request that would otherwise produce a 404 is silently redirected to the target page.
- WordPress's slug uniqueness logic is extended so that no page can claim a permalink slug already in use as a quick link.
Requirements
| Requirement | Version |
|---|---|
| WordPress | 6.4 or later |
| PHP | 8.3 or later |
Installation
- Upload the
easy-quicklinksfolder towp-content/plugins/. - Activate the plugin via Plugins → Installed Plugins.
- Pages work out of the box. To use quick links on other post types, see Settings.
Usage
- Go to Pages in the WordPress admin.
- Hover over a page and click Quick Edit.
- Enter a slug in the Quick Link field (lowercase letters and dashes only, e.g.
testskolan). - Click Update.
The quick link is immediately live. Visiting https://example.com/testskolan will redirect to the target page.
To remove a quick link, open Quick Edit and clear the field, then click Update.
Settings
Go to Settings → Quick Links (requires the manage_options capability) and tick the post types that should support quick links. Pages are enabled by default.
- Redirect type is 302 (temporary) by default, so a quick link can be pointed at another page later without browsers holding on to the old target. Choose 301 (permanent) if quick links never change and search engines should treat the target as the new address. The
easy_quicklinks_redirect_statusfilter overrides the choice. - Switching a post type off keeps its quick links, but they stop redirecting and disappear from the overview. Their slugs stay reserved so they cannot be reused by mistake.
- Developers can override the selection with the
easy_quicklinks_post_typesfilter, which receives and returns a list of post type names. - Removing the plugin deletes the setting but leaves the quick link slugs on the posts.
Slug format
Quick link slugs must match the pattern [a-z][a-z-]* — they start with a lowercase letter and contain only lowercase letters and dashes. No numbers, no uppercase, no special characters.
Conflict prevention
The plugin registers a filter on wp_unique_post_slug so that WordPress will never assign a page a permalink slug that is already claimed by a quick link belonging to another page. If a conflict is detected, WordPress appends a numeric suffix to the new page's slug instead.
Integrations
- Nested Pages — the quick link field is available in Nested Pages quick edit, uses the same validation as the built-in WordPress quick edit, and prevents duplicate quick links or conflicts with top-level page slugs.
Translations
The plugin ships with a Swedish (sv_SE) translation. Additional translations can be placed in languages/ following the standard WordPress naming convention (easy-quicklinks-{locale}.po/.mo).
Development
- Install dependencies with
composer installandnpm install. There are no runtime dependencies and no build step. Build release packages withcomposer install --no-dev. - Start the development environment with
npm run env:start(requires Docker). It runs WordPress with this plugin and Nested Pages at http://localhost:8888 (useradmin, passwordpassword). Stop it withnpm run env:stop. - Update translation strings with
npm run make-pot(requires WP-CLI), then updatelanguages/easy-quicklinks-sv_SE.poand rebuild the.mofile. - Run the tests with
npm test. They are PHPUnit integration tests that run in the Docker environment above, against a clean WordPress with Nested Pages.
Releases
Releases are cut with the shared release skill (see AGENTS.md). The version is kept in easy-quicklinks.php and package.json, tags use the form 1.0.0, and changes are listed in CHANGELOG.md from the next release onward.
AI-assisted development
See AGENTS.md for instructions to AI tools and docs/CODING_STANDARDS.md for the coding standards.