WP_NAV_MENU检查两个层次结构都失败?

时间:2012-10-10 作者:gaspas

我看到菜单中存在某种层次结构来查找父级和祖先。

它们查找“类别或页面”层次结构或“菜单项”层次结构。

但当两者都存在于深树枝中时,它们就不能很好地工作。

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级也应该是。

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

  1. Should it be both Page A and Page B?
  2. Should it be Page A?
  3. Should it be Page B?

    但如果你告诉我,类别1只出现在页面的顶层菜单下,而不出现在其他地方,那也没关系。。。看看这些场景。

    情景2When viewing Post Example X, Attached to Category 1 Where Post Example XNOT 与顶层显示在同一菜单树中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_classwp_get_nav_menu_items.

    我对菜单处理过程的逻辑背后的理解有点模糊,可能其他人也会加入进来,同时也会提供帮助。

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (