在DWQA中添加自定义侧边栏并删除主侧边栏

时间:2017-02-09 10:38:48

标签: php wordpress sidebar

我想从dwqa-question页面中删除主侧边栏,并希望在该页面中添加自定义侧边栏。

我在functions.php中编写了一个代码:

    function dwqa_theme_register_sidebar() {
    register_sidebar( array(
    'name'          => __( 'Single Question', 'multinews' ),
    'id'            => 'dqwa',
    'class'         => '',
    'before_widget' => '<section id="%1$s" class="widget %2$s">',
    'after_widget'  => '</section>',
    'before_title'  => '<h2 class="widget-title">',
    'after_title'   => '</h2>',
     ) );
     }
     add_action( 'widgets_init', 'dwqa_theme_register_sidebar' );

     function remove_main_sidebar_dwqa_question(){
     if ( is_singular('dwqa-question') ){
     unregister_sidebar( 'Main Sidebar' );
     }
     }
     add_action( 'widget_init', 'remove_main_sidebar_dwqa_question' );

这个代码在page.php中:

    <?php if ( is_singular('dwqa-question') ): ?>
    <?php dynamic_sidebar('dqwa') ?>
    <?php endif; ?>

以下是输出截图:

single question page

1 个答案:

答案 0 :(得分:1)

我认为你不需要每次都取消注册主侧边栏,渲染输出需要时间。只需在 siderbar.php 中编写代码即可。在这里,我将一些代码混合在一起。

<?php 
        if ( is_singular('dwqa-question') )
        { 
            dynamic_sidebar('dqwa');
        }
        else
        {
          /** FOR OTHER THAN DWQA ***/
          dynamic_sidebar('main-sidebar'); //I might be wrong on ID
        }//end if 
 ?>

希望它对您有用