我看到菜单中存在某种层次结构来查找父级和祖先。
它们查找“类别或页面”层次结构或“菜单项”层次结构。
但当两者都存在于深树枝中时,它们就不能很好地工作。
e、 q.IN菜单树
• Page 1
• Category 1
• Page 2
• Page 2
在admin real层次结构中
• Category 1 > • Post 1
• 在这种情况下,如果我在(frontoffice)“Category 1”中,则它是菜单树“Page 1”中的父级,具有类“current menu Senior current menu parent”
•如果我在“1类”中的1号岗位(前台),则该岗位有“当前岗位上级当前菜单上级当前岗位上级”。但“第1页”即使与Post 1没有直接联系,仍然是“category 1”的父级。但它没有标记为父代或祖先。
我尝试通过自定义walker甚至过滤“nav\\u menu\\u css\\u class”来找到检查的方法,
如果当前的任何子级是祖先,那么这也是祖先。我们必须检查菜单树或真正的管理树,类别或页面。
因为如果是2级,那么它的祖先1级也应该是。
SO网友:Adam
据我所知,这是正确的行为,
设想一个场景,其中有一个包含顶级项目的菜单,即a页和B页,每个页面都有作为子菜单项附加的类别1。
情景1When viewing Post Example X
, Attached to Category 1
And Where Category 1
在菜单中不同顶层项目下出现两次,我们看到;
/*
- Page A = no ancestor class!
- Category 1 = current-menu-ancestor, current-menu-parent, current-post-parent
- Page B = no ancestor class!
- Category 1 = current-menu-ancestor, current-menu-parent, current-post-parent
*/
如果您查看
Post, 我们叫它吧
Post Example X
, 然后哪个顶级菜单项应接收
current-menu-ancestor
班
- Should it be both Page A and Page B?
- Should it be Page A?
- Should it be Page B?
但如果你告诉我,类别1只出现在页面的顶层菜单下,而不出现在其他地方,那也没关系。。。看看这些场景。
情景2When viewing Post Example X
, Attached to Category 1
Where Post Example X
做NOT 与顶层显示在同一菜单树中Page A
或任何其他顶层树,我们看到;
/*
- Page A = no ancestor class, still!
- Category 1 = current-menu-ancestor, current-menu-parent, current-post-parent
- Page B = not related to post
- Category 2 = not related to post
*/
情景3When viewing Post Example X
这也是,Attached to Category 1
或与顶层位于同一树中Page A
, 我们看到了;/*
- Page A = current-menu-ancestor
- Category 1 = current-menu-ancestor, current-menu-parent, current-post-ancestor, current-post-parent
- Post Example X = current-menu-item
- Page B = not related to post
- Category 2 = not related to post
*/
情景4When viewing Post Example X
这也是,Attached to Category 1
或与顶层在同一棵树中Page A
但在哪里Category 1
也显示在下面Page B
但我们看到,它本身并不包含我们的帖子;/*
- Page A = current-menu-ancestor
- Category 1 = current-menu-ancestor, current-menu-parent, current-post-ancestor, current-post-parent
- Post Example X = current-menu-item
- Page B = not related to post
- Category = current-menu-ancestor, current-menu-parent, current-post-parent
*/
我写这篇文章只是想大致了解一下它的工作原理,接下来我将看看nav_menu_css_class
和wp_get_nav_menu_items
. 我对菜单处理过程的逻辑背后的理解有点模糊,可能其他人也会加入进来,同时也会提供帮助。