web-dev-qa-db-ja.com

テーマのアクティブ化時にサイドバーにウィジェットが追加されないようにするにはどうすればよいですか?

私はwidgets_initに3つのサイドバーを登録しています

    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 install 6ウィジェットで初めてテーマをアクティブにすると、自動的にlateral-header-sidebarに追加されます

http://prntscr.com/l9cx84

私はそれらを間違った方法で登録していますか?

任意の助けは大歓迎です。

3
Benn

ウィジェットは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 ); 
}

あなたはあなたのテーマ起動フックでこれをすることができます。

1
Jack Johansson