我正在建立一个有超大菜单的网站。结构如下所示:
<ul>
<li class="active-grandparent">Grandparent
<ul>
<li>Parent</li>
<li>Parent</li>
<li>Parent</li>
<li>Parent
<ul>
<li>Child</li>
<li>Child</li>
<li>Child</li>
<li>Child</li>
</ul>
</li>
</ul>
</li>
<li>Grandparent</li>
<li>Grandparent</li>
<li>Grandparent</li>
</ul>
我想把“活跃的祖父母”这个班级添加到顶级祖父母中<li>
如果您在该页或父/子页上。WordPress为每个<li>
项目a类current-menu-item
, 但我需要特别针对祖父母<li>
只有这样,我才能在它处于活动状态时添加一些样式。
这是如何实现的?
Updated正如评论中指出的,我可以使用current-menu-ancestor
. 然而,这只是在祖父母身上产生的<li>
当您在父页面或子页面上时。
要澄清的是,如果您位于顶级祖父母页面(/祖父母),则这些是在<li>
:
.menu-item
.menu-item-type-post_type
.menu-item-object-page
.current-menu-item
.page_item page-item-12
.current_page_item
.menu-item-has-children
.menu-item-203
如果您位于父页(/祖父母/父页)或子页(/祖父母/父/子页),则这些是在祖父母中生成的类<li>
:.menu-item
.menu-item-type-post_type
.menu-item-object-page
.current-page-ancestor
.current-menu-ancestor
.current-menu-parent
.current-page-parent
.current_page_parent
.current_page_ancestor
.menu-item-has-children
.menu-item-203
如果有帮助,以下是如何在模板文件中生成我的菜单:<nav class="sidebar-navigation">
<ul>
<?php
$menu = array( \'container\' => false, \'menu_class\' => false, \'items_wrap\' => \'%3$s\' );
// Left
wp_nav_menu( array_merge(
array( \'theme_location\' => \'left\' ),
$menu
) );
// Right
wp_nav_menu( array_merge(
array( \'theme_location\' => \'right\' ),
$menu
) );
?>
</ul>
</nav>