在使用子主题时,如何覆盖在父主题中注册的侧边栏?

时间:2013-11-07 作者:reikyoushin

我目前正在使用一个子主题,它的父主题已经注册了侧栏。。

我的问题是我想更改父主题的动态侧栏

发件人:

register_sidebar(array(
    \'name\' => \'Footer\',
    \'before_widget\' => \'<div class="span3">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'<h6 style="text-transform: uppercase !important; font-weight:600; !important">\',
    \'after_title\' => \'</h6><hr>\',
));
收件人:

register_sidebar(array(
    \'name\' => \'Footer\',
    \'before_widget\' => \'<div class="span3">\',
    \'after_widget\' => \'</div>\',
    \'before_title\' => \'<h6 class="footer-widget-item">\',
    \'after_title\' => \'</h6><hr>\',
));
现在,我该怎么做呢?我发现这个钩子叫做after_setup_theme 从…起here 但我对如何做有点困惑。我是否应该取消侧边栏的注册,然后再次注册?

<小时>

UPDATE:

以下是我的尝试,但没有成功:

add_action( \'after_setup_theme\', \'parent_override\' );
function parent_override() {
    unregister_sidebar(\'Footer\');   
    register_sidebar(array(
        \'name\' => \'Footer\',
        \'before_widget\' => \'<div class="span3">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<h6 class="footer-widgets-item">\',
        \'after_title\' => \'</h6><hr>\',
    )); 
}

2 个回复
SO网友:reikyoushin

以下是有效的方法:

add_action( \'after_setup_theme\', \'parent_override\' );
function parent_override() {

    unregister_sidebar(\'sidebar-4\'); 
    /** I have looked for the ID of the sidebar by looking at        
     *  the source code in the admin.. and saw the widget\'s id="sidebar-4"
     */ 

    register_sidebar(array(
        \'name\' => \'Footer\',
        \'before_widget\' => \'<div class="span3">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<h6 class="footer-widgets-item">\',
        \'after_title\' => \'</h6><hr>\',
    )); 
}
这个id似乎不是名称的一部分,如果您在注册侧栏时没有指定id,它的id将是“侧栏-#”。。。

SO网友:Rushang Shah
add_action( \'widgets_init\', \'parent_override\',11 );
function parent_override() {

    unregister_sidebar(\'sidebar-4\'); 
    /** I have looked for the ID of the sidebar by looking at        
     *  the source code in the admin.. and saw the widget\'s id="sidebar-4"
     */ 

    register_sidebar(array(
        \'name\' => \'Footer\',
        \'before_widget\' => \'<div class="span3">\',
        \'after_widget\' => \'</div>\',
        \'before_title\' => \'<h6 class="footer-widgets-item">\',
        \'after_title\' => \'</h6><hr>\',
    )); 
}
结束

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c