如何避免在主题激活时将小部件添加到侧边栏?

时间:2018-10-23 作者:Benn

我在上注册了3个侧边栏widgets_init

    register_sidebar(array(
        \'name\' =>  esc_html__(\'Left Sidebar\',\'creatus\'),
        \'id\' => \'left\',
        \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<div class="widget_title_holder"><h3 class="widget-title">\',
        \'after_title\' => \'</h3></div>\',
    )); 

   // right sidebar
    register_sidebar(array(
        \'name\' => esc_html__(\'Right Sidebar\',\'creatus\'),
        \'id\' => \'right\',
        \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<div class="widget_title_holder"><h3 class="widget-title">\',
        \'after_title\' => \'</h3></div>\',
    ));

    // lateral header sidebar
    register_sidebar(array(
        \'name\' => esc_html__(\'Lateral header sidebar\',\'creatus\'),
        \'id\' => \'lateral-header-sidebar\',
        \'before_widget\' => \'<div id="%1$s" class="widget %2$s">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<div class="widget_title_holder"><h3 class="widget-title">\',
        \'after_title\' => \'</h3></div>\',
    ));
当我第一次在干净的WP上激活主题时,会自动将6个小部件添加到lateral-header-sidebar

http://prntscr.com/l9cx84

我是否以错误的方式注册了它们,或者为什么将它们添加到这个特定的侧栏而不是其他侧栏?

非常感谢您的帮助。

1 个回复
SO网友:Johansson

小部件存储在wp_options 表(假设数据库前缀为wp_ ). 您可以检索该选项,并手动删除小部件:

// Get all the associated widgets
$sidebar_widgets = get_option ( \'sidebars_widgets\' );

// Check this specific sidebar
if ( isset( $sidebar_widgets [ \'lateral-header-sidebar\' ] ) ) {
    unset ( $sidebar_widgets [ \'lateral-header-sidebar\' ] );
    // Update the option
    update_option ( \'sidebars_widgets\', $sidebar_widgets ); 
}
您可以在主题激活挂钩中执行此操作。

结束

相关推荐

Searchresult sidebar change

那么,searchresult页面侧栏位于哪里?例如,在searchresult页面中,有一个“A”侧栏。但是,我想将其更改为“B”侧栏。我看着search.php 但无法理解侧边栏的来源。