[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