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

时间:2015-07-14 17:35:42

标签: html css wordpress menu sidebar

我有两个不同的页面,称为“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
[...]

因此,当我点击“实验室”页面时,它会显示第一个菜单(第1项,第2项......),当我从“服务”页面点击服务时,它将显示第二个菜单(选项1.1) ,选项1.2 ......)。

Lab和Services页面都使用服装页面模板。有没有办法为侧边栏指定这个,为每个页面显示不同的菜单?

我的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 -->

2 个答案:

答案 0 :(得分:1)

这可能不是您正在寻找的,但我在项目中使用的某个地方发现了这段代码,这非常有用。如果我没记错,你应该能够改变深度,它将做选项1.1选项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是我用过的页面。因此,侧边栏标题下的所有内容都是由这段代码生成的。

答案 1 :(得分:1)

如何使用插件“显示小部件”(https://wordpress.org/plugins/display-widgets/screenshots/)?

使用此插件,您可以显示/隐藏每个页面的某些(侧边栏)小部件。还有另一个好的插件:Widget Logic(https://wordpress.org/plugins/widget-logic/