当我呼叫一个侧边栏时会出现多个侧边栏。怎么修?

时间:2011-06-15 18:14:21

标签: wordpress

我有一个functions.php文件,我在其中注册了所有侧边栏。

在sidebar.php文件中我有这个

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Home Page') ) : ?>
<?php endif; ?>

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Blog Page') ) : ?>
<?php endif; ?>

然后我称之为

 <?php get_sidebar('Home Page'); ?>

博客页边栏也出现了。怎么办?

编辑: 等等我需要为我的所有侧边栏创建一个页面吗?这就是为什么它不起作用?

这会是很多页面还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

我的做法略有不同,我这样做:

这在我的functions.php中:

    // header
    register_sidebar( array (
    'name' => 'Header Widget Area',
    'id' => 'header_widget_area',
    'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
    ) );

    // Single Post Sidebar
    register_sidebar( array (
    'name' => 'Single Widget Area',
    'id' => 'single_widget_area',
    'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    'after_widget' => "</li>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
  ) );

然后我就这样称呼它们,我正在使用它们的模板:

<?php if ( is_sidebar_active('header_widget_area') ) : ?>
        <?php dynamic_sidebar('header_widget_area'); ?>
<?php endif; ?>

如果您需要更多帮助,请与我联系。

答案 1 :(得分:0)

命令dynamic_sidebar()实际输出指示的侧边栏。当您调用get_sidebar时,它会显示这两个侧边栏,因为在条件栏中,会输出侧边栏。

你并没有走上正确的道路。

你想要简单地拥有

get_sidebar();

在你的模板中。

然后在sidebar.php文件中你会做条件来确定何时显示什么。例如,像这样......

if ( is_page() ) :
    dynamic_sidebar('page-sidebar');
elseif ( is_post() ) :
    dynamic_sidebar('post-sidebar');
endif;

如果您仍然遇到问题,请告诉我,我可以提供更多详细信息/更详细的解决方案示例