[wp-trac] [WordPress Trac] #64834: Bug Report / UX Issue: Taxonomy Hierarchy Flattens and Breaks in Nav Menu "View All" Tab Due to Pagination

WordPress Trac noreply at wordpress.org
Mon Mar 9 18:45:14 UTC 2026


#64834: Bug Report / UX Issue: Taxonomy Hierarchy Flattens and Breaks in Nav Menu
"View All" Tab Due to Pagination
--------------------------+-----------------------------
 Reporter:  grafimangr    |      Owner:  (none)
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  Menus         |    Version:  6.9.1
 Severity:  normal        |   Keywords:
  Focuses:  ui            |
--------------------------+-----------------------------
 Hi there!
 Description of the Issue:
 There is a long-standing UX issue in the WordPress admin panel regarding
 the Appearance > Menus (nav-menus.php) screen. When a user tries to add
 terms from a hierarchical taxonomy (such as WooCommerce Product Categories
 or standard Post Categories) to a menu, the visual parent-child hierarchy
 breaks completely if the number of terms exceeds the pagination limit.
 ​In the "View All" tab of the taxonomy meta box, instead of displaying the
 correct indented tree structure, WordPress renders a completely flat list.
 This makes it nearly impossible for site admins to identify which child
 category belongs to which parent, especially on e-commerce sites with
 hundreds of nested categories.
 ​Expected Behavior:
 The visual hierarchy should be maintained, displaying like this:
 ​Category
 ​Sub-category 1
 ​Sub-category 2
 ​Sub-sub-category 1
 ​Actual Behavior:
 The hierarchy is stripped, and items are displayed as a flat list:
 ​Category
 ​Sub-category 1
 ​Sub-category 2
 ​Sub-sub-category 1
 ​Steps to Reproduce:
 ​Create a hierarchical taxonomy (e.g., standard categories or WooCommerce
 product categories).
 ​Generate a large number of terms (e.g., 50+ terms) with multiple levels
 of parent-child relationships.
 ​Navigate to Appearance > Menus.
 ​Open the meta box for that specific taxonomy and click on the "View All"
 tab.
 ​Notice that the pagination kicks in and the terms are listed flatly
 without any hierarchical indentation.
 ​Technical Root Cause:
 The issue stems from how wp_terms_checklist() and the
 Walker_Nav_Menu_Checklist handle large datasets. When the number of terms
 exceeds the default limit, pagination ('number' and 'offset' arguments in
 get_terms) is applied.
 ​Because a child term might end up on a different pagination page than its
 parent, the walker cannot reliably build the tree. As a fallback,
 WordPress abandons the hierarchical structure and outputs a flat list to
 prevent "orphan" child terms from breaking the HTML structure.
 ​Impact:
 This causes a massive workflow bottleneck for users managing large sites,
 specifically WooCommerce stores with complex product catalogs. Users are
 forced to guess which "T-Shirts" sub-category belongs to "Men" and which
 belongs to "Women" since they both look identical in the flat list.
 ​Proposed Solutions:
 ​AJAX-based Tree Loading: Implement a lazy-loading tree structure (similar
 to modern UI frameworks) where clicking a parent expands its children
 dynamically, bypassing the need for standard pagination.
 ​Disable Pagination for Hierarchical Taxonomies: Introduce a filter or
 core toggle that allows hierarchical taxonomies to bypass the number limit
 entirely in the nav menu meta box, rendering the full tree at once.
 ​Contextual Parent Labels: If flattening is absolutely necessary for
 performance, append the parent name to the child term in the UI (e.g.,
 Sub-category 1 (Parent: Category)).
 ​Thank you for looking into this long-standing friction point in the
 WordPress admin experience!

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64834>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list