WordPress子子菜单列表

时间:2015-11-18 23:18:42

标签: php wordpress

我在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 } ?>

它只显示菜单列表:

  • Lorem Ipsum 3.1
  • Lorem Ipsum 3.2

我该怎么做?

1 个答案:

答案 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;
}