我正在为二十几岁的孩子创建一个主题。我想删除默认指定的所有边栏,并添加一个我自己的边栏。在twentyeleven主题的functions.php是这样的:unregister_sidebar不工作,我做错了什么?
<?php
// etc etc etc
function twentyeleven_widgets_init() {
register_widget('Twenty_Eleven_Ephemera_Widget');
register_sidebar(array(
'name' => __('Main Sidebar', 'twentyeleven'),
'id' => 'sidebar-1',
'before_widget' => '<aside id="%1$s" class="widget %2$s">',
'after_widget' => "</aside>",
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
));
// etc. 4 others registered too...
}
add_action('widgets_init', 'twentyeleven_widgets_init');
// etc etc etc
?>
现在我意识到,如果我只是注释掉添加动作,这将它们全部删除。我不想做这个想法,因为当父主题更新时,他们会重新出现。
我试图做到这一点的儿童主题的functions.php中没有成功:
<?php
// etc etc etc
function unregister_old_sidebars() {
unregister_sidebar('sidebar-1');
//and i've tried unregister_sidebar('Main Sidebar');
}
add_action('widgets_init', 'unregister_old_sidebars');
// etc etc etc
?>
食品法典委员会说,使用unregister_sidebar($ ID),其中$ id为“侧边栏的ID时加入”。所以......我想这是'widgets_init'行为是错误的?子主题函数是否在父函数之后运行?
帮助! :D 本
好吧,我是个白痴。通过实际阅读文档回答了我自己的问题: “在这个例子中,注意我们在注册widgets_init挂钩时分配了11的优先级,这是因为在父主题之前调用了一个子主题的functions.php文件,这意味着我们对unregister_sidebar()的调用将无法实现,因为侧边栏尚未注册。“ – 2012-02-22 18:58:36