2012-02-22 104 views
1

我正在为二十几岁的孩子创建一个主题。我想删除默认指定的所有边栏,并添加一个我自己的边栏。在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 本

+0

好吧,我是个白痴。通过实际阅读文档回答了我自己的问题: “在这个例子中,注意我们在注册widgets_init挂钩时分配了11的优先级,这是因为在父主题之前调用了一个子主题的functions.php文件,这意味着我们对unregister_sidebar()的调用将无法实现,因为侧边栏尚未注册。“ – 2012-02-22 18:58:36

回答

1

好吧,我是个白痴。通过实际阅读文档回答我自己的问题(http://codex.wordpress.org/Function_Reference/unregister_sidebar): “在这个例子中,请注意我们在注册widgets_init挂钩时分配了11的优先级,这是因为在父主题之前调用了一个子主题的functions.php文件,这意味着我们对unregister_sidebar()的调用将无法实现,因为侧栏尚未注册。“

相关问题