GT Link Manager

Changelog

1.6.1

  • Fixed nonce mismatch bug — trash, restore, and permanent delete actions were failing due to inconsistent nonce prefixes.
  • Fixed potential ReDoS vulnerability — removed error suppression on regex pattern matching, added pattern length validation.
  • Standardized all nonce prefixes to gtlm_ across admin actions and list table.
  • Added REST API route descriptions to all endpoints for better discoverability.
  • Added object caching for admin category dropdown with proper invalidation on create, update, and delete.
  • Updated readme with free training course, developer reference, REST API guide, and new FAQ entries.

1.6.0

  • Added advanced redirects: Direct (prefix-free) and Regex (pattern-based) link modes.
  • Direct links redirect without the prefix — e.g., yoursite.com/my-page instead of yoursite.com/go/my-page.
  • Regex links match request paths against patterns with capture group substitution in destination URLs.
  • New “Enable Advanced Redirects” toggle in Settings (off by default) to opt in.
  • Link edit form shows mode selector (Standard / Direct / Regex) with contextual fields.
  • Conflict detection warns when direct link paths match existing WordPress posts or pages.
  • Regex patterns are validated on save; invalid patterns are rejected.
  • List table shows link mode with filter support.
  • REST API accepts and returns link_mode, regex_replacement, and priority fields.
  • New database columns: link_mode, regex_replacement, priority — fully backwards compatible.

1.5.3

  • Fixed plugin zip size bloat — excluded .wordpress-org assets directory from distribution package.

1.5.2

  • Added “Delete Data on Uninstall” setting — data is now preserved by default when the plugin is deleted.
  • Uninstall only removes tables and options if the user explicitly opts in via Settings.

1.5.1

  • Fixed CSS custom properties not resolving on some admin pages — all values are now hardcoded.
  • Fixed form-table double-card styling when rendered inside a card container.
  • Improved edit form submit buttons layout — buttons now display in a single horizontal row.
  • Improved branded URL preview styling with distinct blue tint.
  • Added subtle row separators inside card form tables.
  • Added WordPress.org SVN deploy to release workflow.
  • Added plugin banner and icon assets for WordPress.org listing.

1.4.0

  • Renamed internal code prefix from gt_ to gtlm_ (4+ characters) per WordPress.org guidelines.
  • Fixed nonce verification order in CSV import handler — nonce is now checked before reading POST data.
  • Fixed SQL injection vector — $orderby now uses %i identifier placeholder in prepared queries.
  • Added Source Code section to readme for compiled block editor assets.
  • Added card-based UI styling to all admin pages (edit link, categories, settings, import/export).
  • Settings page reorganized into General, Tools, and Diagnostics cards.
  • Clean uninstall now removes both old (gt_) and new (gtlm_) prefix options and tables.

1.3.1

  • Block editor: aligned GT Link popover anchoring with core rich text behavior using selection-based anchor.

1.3.0

  • Refactored admin into separate actions and rendering classes for maintainability.
  • Added Pretty Links CSV import preset alongside Generic and LinkCentral.
  • Improved input sanitization on redirect URI parsing.
  • Added PHPCS configuration and Composer dev tooling.
  • Added uninstall.php for clean plugin removal (drops tables and options).
  • Improved build.sh with .distignore support and critical file verification.
  • Improved release workflow with version verification, checksums, and distribution validation.
  • Block editor popover anchor now uses bounding rect snapshot for reliable positioning.
  • Button primary color now follows WordPress admin theme color.
  • Lowered PHP requirement from 8.2 to 8.0.
  • Tested up to WordPress 6.9.

1.2.3

  • Fixed release packaging bug that accidentally removed blocks/link-inserter/build/* from zip assets.
  • GitHub release workflow now compiles block editor assets before zipping and verifies build files exist.

1.2.2

  • Fixed block editor link inserter not appearing on WordPress 6.8+.
  • Removed deprecated useAnchor hook that crashed the toolbar button on render.
  • Eliminated react-jsx-runtime dependency that prevented the script from loading on some WordPress versions.
  • Popover now anchors to the toolbar button for reliable positioning.

1.2.0

  • Fixed critical bug: links disappeared after 1.1.9 update because new DB columns were not added on plugin update (only on fresh activation).
  • Added automatic DB migration that runs on update to add missing columns and backfill existing rows.
  • Fixed WordPress admin sidebar menu getting unintended card styles on the Settings page.
  • Improved Settings page: Flush Permalinks and Run Diagnostics buttons are now inline, diagnostics output uses a clean table layout with status badges.

1.1.9

  • Added link activate/deactivate toggle. Inactive links stop redirecting but remain in the database.
  • Delete now moves links to trash instead of permanent deletion. Links can be restored from trash.
  • Trash view with restore and permanent delete actions.
  • New bulk actions: Activate, Deactivate, Move to Trash, Restore, Delete Permanently.
  • REST API: DELETE defaults to trash (use ?force=true for permanent). New /restore and /toggle-active endpoints.
  • Status column and views (All / Active / Inactive / Trash) in the links list table.
  • New is_active and trashed_at columns added to the links table on upgrade.

1.1.8

  • Maintenance release.

1.1.7

  • Block editor: Fixed editor scroll jump when opening GT Link popover from the toolbar.
  • Block editor: Improved search input focus behavior so opening popover does not move viewport.

1.1.6

  • REST API: Added full pagination (page, per_page, category_id, orderby, order) to GET /links endpoint.
  • REST API: Added args schema validation to all write endpoints (links, categories, bulk-category).
  • Security: Replaced innerHTML with DOM methods in admin quick edit to prevent XSS.
  • DB: Added rel whitelist validation on filter queries.
  • Build: build.sh now compiles block editor assets before packaging.

1.1.5

  • Maintenance release.

1.1.4

  • Anchor popover to selected text using useAnchor from @wordpress/rich-text.

1.1.3

  • Fixed format registration conflict with core/underline on WP 6.9+ (both used bare span tag).
  • Added unique className to avoid tagName collision.

1.1.2

  • Switch to RichTextToolbarButton for standard format toolbar integration.

1.1.1

  • Force-inject format into RichText allowedFormats for reliable toolbar display.

1.1.0

  • Rebuilt block editor link inserter with @wordpress/scripts build pipeline.
  • Fixed toolbar button not appearing in block editor.
  • Proper dependency resolution via index.asset.php.

1.0.4

  • Fixed toolbar button registration in block editor for GT Link inserter.
  • Added selected-text autofill in GT Link inserter search field.
  • Improved redirect detection for WordPress installs in subdirectories.

1.0.3

  • Enhance block editor integration with additional dependencies and improved format registration

1.0.2

  • Minor internal hardening and cleanup.

1.0.1

  • Fixed uninstall to preserve links and settings data across reinstalls.

1.0.0

  • Initial release.

Plugin Website
Visit website

Version:
1.6.1
Last Updated
April 11, 2026
Active Installs
100
Requires
WordPress 6.4
Tested Up To
WordPress 7.0
Requires PHP
8.0

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.