Search by

considbrs-webdev / easy-quicklinks

michaelclaesson

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

Statistics

Installs: 138

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-11-04 20:30 UTC

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

  1. Upload the easy-quicklinks folder to wp-content/plugins/.
  2. Activate the plugin via Plugins → Installed Plugins.
  3. Pages work out of the box. To use quick links on other post types, see Settings.

Usage

  1. Go to Pages in the WordPress admin.
  2. Hover over a page and click Quick Edit.
  3. Enter a slug in the Quick Link field (lowercase letters and dashes only, e.g. testskolan).
  4. 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_status filter 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_types filter, 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 install and npm install. There are no runtime dependencies and no build step. Build release packages with composer 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 (user admin, password password). Stop it with npm run env:stop.
  • Update translation strings with npm run make-pot (requires WP-CLI), then update languages/easy-quicklinks-sv_SE.po and rebuild the .mo file.
  • 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.

License

GPL-2.0-or-later