unregister_sidebar not working, what am I doing wrong?
我正在为"二十一"创建一个儿童主题。 我要删除默认情况下指定的所有侧边栏,并添加自己的一个。 在二十一个主题中,functions.php是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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' => '', 'after_widget' =>"</aside>", 'before_title' => '<h3 class="widget-title">', 'after_title' => '', ) ); // etc. 4 others registered too... } add_action( 'widgets_init', 'twentyeleven_widgets_init' ); // etc etc etc ?> |
现在,我意识到,如果我只注释掉添加操作,这将全部删除它们。 我不想这样做,因为当父主题更新时,它们会重新出现。
我尝试在儿童主题的functions.php中执行此操作,但未成功:
1 2 3 4 5 6 7 8 9 10 11 | <?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
本
好吧,我是个白痴。 通过实际阅读文档(http://codex.wordpress.org/Function_Reference/unregister_sidebar)回答了我自己的问题:
"在示例中,请注意,在注册widgets_init钩子时,我们将优先级设置为11。这是因为子主题的functions.php文件在父主题之前被调用,这意味着我们对unregister_sidebar()的调用不会完成任何操作,因为 侧栏尚未注册。"