根据活动导航,仅显示第二级导航

时间:2012-04-04 作者:Matthew

例如,假设这样的菜单:

Parent 1
  Child A
  Child B
Parent 1
  Child C
  Child D
  Child E
Parent 2
  Child F
在模板的特定部分,我希望根据菜单中的当前“位置”显示一些内容。如果用户在Parent 1, Child C, Child D, 或Child E 页面,然后我想显示一个小菜单,上面写着Parent 1 作为标题,子级作为链接。我尝试过很多事情(创建一个自定义walker对象,编写css以不显示不应该显示的项目,等等),如果根本没有子项,那么我甚至不想在父项自己的页面上显示父项。这有意义吗?

我不想要一个插件可以/有助于实现这一点(我不想让我的模板“依赖”于插件)

1 个回复
SO网友:Greg McMullen

试试这个——我还没有完全实现它,但我已经测试过了,它似乎很有效。将其放在函数中。php和调用<?php list_child_pages(); ?> 或使用快捷码[childpages] 在编辑器中。

<?php
// List Child pages of a parent. 
function list_child_pages() {

global $post;

if ( is_page() && $post->post_parent )
    $childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->post_parent . \'&echo=0\' );
else
    $childpages = wp_list_pages( \'sort_column=menu_order&title_li=&child_of=\' . $post->ID . \'&echo=0\' );

if ( $childpages ) { ?>
    <menu>
        <ul class="side-nav">
            <?php echo $string = $childpages; ?>
        </ul>
    </menu>
<?php   
}

return $string;

}
// Add Shortcode for additional support, not just in the theme template
add_shortcode(\'childpages\', \'list_child_pages\');

?>

结束

相关推荐

Wordpress Custom Menus Issue

在我的模板中,我使用这样的调用来输出一些自定义菜单:<?php wp_nav_menu(array(\'container_class\' => \'secondary-navigation\', \'theme_location\' => \'secondary\')); ?> 自从升级到WordPress 3.1.4后,我就可以获得完整的页面列表,而不是自定义菜单我看到修复程序(通过谷歌)说我应该添加以下内容来修复此问题:\'fallback_cb\' => f