在WordPress中显示特定父级项目的子菜单

时间:2011-04-27 00:19:45

标签: wordpress

我在wordpress网站上有一个主菜单,使用wp_nav_menu作为4个父项,每个都有几个子菜单项。

在特定模板上,我想显示其中一个父项的子菜单项。例如:

  • 父项目1
    • 列出项目1
    • 列出项目2
  • 父项目2
    • 列出项目1
    • 列出项目2
  • 父项目3
    • 列出项目1
    • 列出项目2
  • 父项4
    • 列出项目1
    • 列出项目2

在我的模板中,我想显示父项目3的列表项目1和列表项目2.每个父项目都有一个唯一的ID。在'pages'上我使用以下代码来完成它:

            <?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 id="side-page-menu">
                    <?php echo $children; ?>
                </ul>
        <?php } ?>

但这似乎不适用于单个帖子(与页面相比)。

谢谢!

1 个答案:

答案 0 :(得分:0)

试过这个

<ul>
            <?php wp_list_pages('title_li=<h2>MAIN NAV</h2>&depth=1' ); ?>
            </ul>
            <?php
                if ($post->post_parent == 0) {
                $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
                $parentpage = $wpdb->get_row("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE ID = '".$post->ID."'");
                }
                if ($post->post_parent != 0) {
                $next_post_parent = $post->post_parent;
                while ($next_post_parent != 0) {
                $children = wp_list_pages("title_li=&child_of=".$next_post_parent."&echo=0");
                $parentpage = $wpdb->get_row("SELECT ID, post_title, post_parent, post_name FROM $wpdb->posts WHERE ID = '".$next_post_parent."'");
                $next_post_parent = $parentpage->post_parent;
                }
            }
            ?>
            <?php if ($children) { ?>
            <ul>
                <li>SUBNAV FOR: <a href="<?php echo get_permalink($parentpage->ID); ?>"><?php echo $parentpage->post_title; ?></a>
            <ul>
            <?php echo $children; ?>
            </ul>
            </li>
            </ul>
            <?php } ?>