unregister_sidebar не работает, что я делаю не так? - PullRequest
1 голос
/ 22 февраля 2012

Я создаю дочернюю тему для twentyeleven. Я хочу удалить все боковые панели, указанные по умолчанию, и добавить одну из своих. В двенадцатилетних темах functions.php выглядит так:

<?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 Бен

1 Ответ

1 голос
/ 28 февраля 2012

Хорошо, я идиот.Ответил на мой собственный вопрос, фактически прочитав документы (http://codex.wordpress.org/Function_Reference/unregister_sidebar): ". В этом примере обратите внимание, что мы назначаем приоритет 11 при регистрации хука widgets_init. Это потому, что файл functions.php дочерней темы вызывается перед родительскимtheme, что означает, что наш вызов unregister_sidebar () ничего не даст, поскольку боковая панель еще не зарегистрирована. "

...