Bracket Post Order

Changelog

1.2.6

  • Fixed: Column widths no longer break during drag-and-drop when columns are hidden via Screen Options (e.g., Yoast SEO columns)
  • Fixed: Hidden table cells now retain display:none when the dragged row leaves the table context
  • Fixed: Header width locking now skips hidden columns to prevent table-layout:fixed miscalculations

1.2.5

  • Fixed: Uninstall now removes the bracket_po_db_version option to prevent schema migration being skipped on reinstall
  • Fixed: Deleted or trashed posts are now cleaned from per-term order meta, preventing stale data accumulation
  • Fixed: Global order save now validates that posts belong to an enabled post type
  • Fixed: Term order save now validates that terms belong to an enabled taxonomy
  • Fixed: Term order reset now validates the term’s taxonomy is enabled before deleting order data
  • Fixed: Strict comparison for term order deduplication zero-check
  • Fixed: WPML compatibility no longer passes false to translation filter for deleted posts
  • Improved: OR tax_query relation check now short-circuits before unnecessary term resolution

1.2.4

  • Fixed: Fatal SQL error when term_order column is missing from wp_terms — now gracefully falls back
  • Fixed: Global reset now also clears per-term ordering data to prevent stale order arrays
  • Fixed: Per-term save no longer discards posts on other pages when list is paginated
  • Fixed: SCPO conflict detection now dequeues the correct script handle (scporderjs)
  • Fixed: sanitize_text_field before parse_str could corrupt serialized order data on some servers
  • Fixed: Duplicate menu_order values now resolved to unique sequential values during save
  • Fixed: New posts added to an ordered term now appear last (after ordered posts) instead of first
  • Fixed: Refresh order no longer runs during AJAX requests, preventing mid-drag corruption
  • Fixed: Autosaves and revisions no longer trigger unnecessary menu_order re-sequencing
  • Fixed: Re-sequence sort is now deterministic with ID-based tiebreaker
  • Fixed: WPML per-term ordering now uses actual taxonomy instead of hardcoded ‘category’
  • Fixed: PHP usort stable tiebreaker for term_order on PHP < 8.0
  • Fixed: Keyboard Escape handler maintains focus after cancel
  • Improved: term_order column auto-created on admin_init if missing (handles FTP installs)
  • Improved: Admin notice shown if ALTER TABLE fails during activation
  • Improved: REST API queries are no longer affected by the plugin’s ordering hooks
  • Improved: Per-term save validates that term belongs to an enabled taxonomy

1.2.3

  • Fixed: New posts added to a term with per-term ordering now appear first instead of last

1.1.0

  • New: Settings link on the Plugins page for quick access
  • New: Admin bar indicator showing current ordering mode (Global or Per-Term)
  • New: Order position “#” column on admin post list tables
  • New: Reset Order button with sort options (Date DESC/ASC, Title A-Z/Z-A) for both global and per-term modes
  • New: Undo last reorder — “Order saved. [Undo]” link with 8-second timeout
  • New: Green highlight animation on rows after save
  • New: Drag handle (vertical dots) visible on row hover
  • New: Enhanced sortable placeholder and helper styles
  • New: 800ms debounce on AJAX saves to prevent rapid drag spam
  • New: Mobile/touch drag-and-drop support via jQuery UI Touch Punch
  • New: Touch-friendly CSS — 48px min-height targets on coarse pointer devices
  • New: Full keyboard accessibility — Enter/Space to activate, Arrow keys to move, Enter to save, Escape to cancel
  • New: ARIA live region for screen reader announcements (WCAG compliance)
  • New: WPML compatibility — per-term ordering works across languages
  • New: Polylang compatibility — per-term ordering works across languages
  • Performance: Optimized admin_init refresh — only recalculates menu_order when posts actually change (transient-based staleness detection)
  • Improved: Sortable helper has larger shadow and subtle scale
  • Improved: Focus ring styles for keyboard navigation
  • Updated: uninstall.php cleans up transients
  • Developer: New bracket_po_global_order_reset action
  • Developer: New bracket_po_term_post_order_reset action

1.0.2

  • Fixed table layout during drag-and-drop on some environments
  • Improved first-time post ordering initialization
  • Auto-detection and repair of menu_order gaps

1.0.1

  • Improved WordPress coding standards compliance
  • Settings page UX improvements
  • Minor code quality and compatibility fixes

1.0.0

  • Initial release
  • Global post ordering via menu_order with drag-and-drop on admin list tables
  • Per-taxonomy-term post ordering — independent sort order for each category/tag/term
  • Taxonomy term ordering via drag-and-drop on edit-tags.php
  • Modern settings page with card layout and toggle switches
  • Dynamic taxonomy visibility — toggling a post type instantly shows its taxonomies
  • Transparent WP_Query integration via pre_get_posts and posts_clauses
  • Per-term ordering uses SQL FIELD() for native pagination support
  • Automatic conflict detection and script dequeuing for Simple Custom Post Order
  • Developer hooks: bracket_po_apply_term_post_order, bracket_po_get_term_post_order, bracket_po_global_order_updated, bracket_po_term_post_order_updated, bracket_po_term_order_updated
  • Clean uninstall — removes options and term meta on plugin deletion
  • Full internationalization support with .pot template

Plugin Website
Visit website

Author
bracket
Version:
1.2.6
Last Updated
April 9, 2026
Requires
WordPress 6.2
Tested Up To
WordPress 6.9.4
Requires PHP
7.4

Share Post

Join our newsletter.

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