我喜欢使用儿童主题。
父函数。php
function starkers_widgets_init() {
// Area 1, located at the top of the sidebar.
register_sidebar( array(
\'name\' => __( \'Primary Widget Area\', \'starkers\' ),
\'id\' => \'primary-widget-area\',
\'description\' => __( \'The primary widget area\', \'starkers\' ),
\'before_widget\' => \'<li>\',
\'after_widget\' => \'</li>\',
\'before_title\' => \'<h3>\',
\'after_title\' => \'</h3>\',
) );
// Area 2 ...
我的孩子主题功能。php
function xtreme_unregister_sidebar() {
unregister_sidebar(\'primary-widget-area\');
}
add_action( \'childtheme_sidebars\', \'xtreme_unregister_sidebar\' );
但不适用于
谢谢
最合适的回答,由SO网友:IFightCode 整理而成
检查下面的代码,我认为应该可以。
add_action( \'after_setup_theme\', \'remove_default_sidebars\', 11 );
function remove_default_sidebars(){
remove_action( \'widgets_init\', \'starkers_widgets_init\' );
}
SO网友:leogopal
这篇文章的标题是注销小部件,而不是真正的边栏,尽管我很高兴用户得到了他们想要的东西。对于那些正在搜索如何使用在父主题中注册小部件的子主题注销小部件的用户,您可以使用以下方法:
假设父主题的Widget在widgets\\u init hook中注册,那么您只需将unregister\\u Widget()调用包装在函数中,将该函数挂接到widgets\\u init中,并为钩子指定比父主题的widgets\\u init-hooked函数更高的优先级。
假设父主题挂钩到widgets\\u init,而不提供优先级编号,则该函数将默认为10。所以,只需将钩子调用的优先级设置为11或更高。
这样的话:
add_action( \'widgets_init\', \'remove_theme_widgets\', 11 );
function remove_theme_widgets() {
unregister_widget(\'parent_theme_widget_class\');
}
Source