Wordpress 当我调用一个边栏时,会出现多个边栏。如何修复?

Wordpress 当我调用一个边栏时,会出现多个边栏。如何修复?,wordpress,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'

我有一个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'); ?>

然而博客页面侧边栏也出现了。怎么办

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


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

我的做法略有不同,我会:

在my 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>',
  ) );
//头
寄存器侧栏(数组)(
'名称'=>'标题小部件区域',
'id'=>'标题\u小部件\u区域',
'before_widget'=>'
  • ”, 'after_widget'=>“
  • ”, “在标题“=>”之前, “在标题“=>”之后, ) ); //单柱侧边栏 寄存器侧栏(数组)( “名称”=>“单个小部件区域”, 'id'=>'单个窗口小部件\u区域', 'before_widget'=>'
  • ”, 'after_widget'=>“
  • ”, “在标题“=>”之前, “在标题“=>”之后, ) );
    然后我像这样称呼他们,在我使用的模板中:

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

    如果您需要更多帮助,请告诉我。

    命令dynamic_sidebar()实际上会输出指示的侧栏。调用get_侧栏时,它会同时显示这两个侧栏,因为在条件中,侧栏是输出的

    你并没有走上你想要的正确道路

    你只想拥有

    get_sidebar();
    
    在模板中

    然后在sidebar.php文件中,您将使用条件来确定何时显示内容。例如,像这样的东西

    if ( is_page() ) :
        dynamic_sidebar('page-sidebar');
    elseif ( is_post() ) :
        dynamic_sidebar('post-sidebar');
    endif;
    
    如果您仍有问题,请告诉我,我可以提供更多详细信息/更详细的解决方案示例