我在WordPress中有一个多级菜单,如下所示:
<ul>
<li>
<a href="#">Lorem Ipsum 1.1</a>
</li>
<li>
<a href="#">Lorem Ipsum 1.2</a>
<ul>
<li>
<a href="#">Lorem Ipsum 2.1</a>
<ul>
<li>
<a href="#">Lorem Ipsum 3.1</a>
</li>
<li>
<a href="#">Lorem Ipsum 3.2</a>
</li>
</ul>
</li>
<li>
<a href="#">Lorem Ipsum 2.2</a>
</li>
</ul>
</li>
<li>
<a href="#">Lorem Ipsum 1.3</a>
</li>
</ul>
当我在“Lorem Ipsum 3.1”页面时,我想要显示“Lorem Ipsum 1.2”列表中的所有菜单项,如下所示:
Lorem Ipsum 2.1
Lorem Ipsum 3.1
Lorem Ipsum 3.2
Lorem Ipsum 2.2
使用此代码:
<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
它只显示菜单列表:
我该怎么做?
答案 0 :(得分:0)
wp_list_pages
符合名称的含义 - 列出页面。您的菜单结构未被查看,因此您设置菜单的方式并不是特别相关,重要的是页面层次结构。您的页面层次结构是否与菜单的匹配?
如果您设置了菜单,则可能更容易使用普通wp_nav_menu
,然后根据需要使用CSS隐藏/显示子菜单。 CSS会像这样:
/* Hide sub menus by default */
nav li ul{
display: none;
}
/* Always show the current menu item's children */
nav .current-menu-parent ul{
display: block;
}