如何在每个页面的侧边栏上显示不同的菜单

How to show different menu on sidebar for each page

我有两个不同的页面,分别是 "Lab" 和 "Services"。 "Lab" 页面使用自定义模板页面。 "Services" 页面显示 8 个服务选项,每个服务打开不同的页面。例如:

实验室页面菜单:(我想在侧边栏上显示的菜单)

 - Item 1
 - Item 2
 - Item 3

服务页面:(页面有这个服务,每个服务里面都有一些选项)

- Service 1
-- Option 1.1
-- Option 1.2
-- Option 1.3
- Service 2
-- Option 2.1
-- Option 2.2
- Service 3
-- Option 3.1

服务菜单为:

- Option 1.1
- Option 1.2
- Option 1.3
- Option 2.1
[...]

因此,当我单击 "lab" 页面时,它会显示第一个菜单(项目 1、项目 2...),当我从 "Services" 页面单击服务时,它会显示第二个菜单(选项 1.1、选项 1.2 ...)。

实验室和服务页面都使用了服装页面模板。有没有办法指定侧边栏显示每个页面的不同菜单?

我的sidebar.php代码:

<aside id="secondary" class="col-xs-12 col-sm-4" role="complementary">

        <?php do_action( 'before_sidebar' ); ?>
        <br><br><br>

        <?php if ( ! dynamic_sidebar( 'sidebar-1' ) ) : ?>

            <aside id="search" class="widget widget_search">
                <?php get_search_form(); ?>
            </aside>

            <aside id="archives" class="widget">
                <h1 class="widget-title"><?php _e( 'Archives', 'codex-coder' ); ?></h1>
                <ul>
                    <?php wp_get_archives( array( 'type' => 'monthly' ) ); ?>
                </ul>
            </aside>

            <aside id="meta" class="widget">
                <h1 class="widget-title"><?php _e( 'Meta', 'codex-coder' ); ?></h1>
                <ul>
                    <?php wp_register(); ?>
                    <li><?php wp_loginout(); ?></li>
                    <?php wp_meta(); ?>
                </ul>
            </aside>

        <?php endif; // end sidebar widget area ?>
    </aside><!-- #secondary -->

这可能不是您要查找的内容,但我不久前在某个项目中使用的某处找到了这段代码,它非常有帮助。如果我没记错的话,你应该可以改变深度,它会做 Option 1.1 Option 1.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&depth=1");
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  <?php echo strip_tags ($children, '<a>, <hr>'); ?>
  </ul>
 <?php } ?>

http://bit.ly/1O4B15N 是我使用它的页面。所以侧边栏 header 下的所有内容都是由这段代码生成的。

使用插件 "Display Widgets"(https://wordpress.org/plugins/display-widgets/screenshots/) 怎么样?

使用此插件,您可以 show/hide 每个页面的某些(边栏)小部件。还有一个不错的插件:Widget Logic (https://wordpress.org/plugins/widget-logic/)