Фиксация бокового перекрытия в двенадцатилетнем - PullRequest
1 голос
/ 07 июля 2011

Я создаю новый шаблон страницы с боковой панелью в моей дочерней теме на основе twentyeleven. Это не отображается должным образом из-за этого в функции twentyeleven.php:

function twentyeleven_body_classes( $classes ) {

if ( ! is_multi_author() ) {
    $classes[] = 'single-author';
}

if ( is_singular() && ! is_home() && ! is_page_template( 'showcase.php' ) && ! is_page_template( 'sidebar-page.php' ) )
    $classes[] = 'singular';

return $classes;
}
add_filter( 'body_class', 'twentyeleven_body_classes' );

Он добавляет класс "singular" к тегу body любого шаблона, кроме sidebar-page.php по умолчанию, и это приводит к перекрытию боковой панели.

Я не могу это исправить с помощью functions.php, потому что дочерняя тема functions.php загружается ДО родительской темы (поэтому я не могу просто пройти через массив $ classes и удалить элемент «singular»). Я не хочу редактировать родительский файл functions.php, поскольку он будет перезаписан во время обновлений, что в первую очередь сводит на нет весь смысл использования дочерней темы.

Есть идеи?

EDIT: кажется, что я могу заставить его работать после родительского function.php, используя хук действия after_setup_theme.

Теперь я получаю ошибки.

Мой код:

add_action( 'after_setup_theme', 'childtheme_override' );

function childtheme_override() {
    add_filter('body_class', 'twentyeleven_child_body_classes');
}

function twentyeleven_child_body_classes ($classes) {
    if ( is_page_template('container-sidebar-page.php') ) {
        foreach ($classes as $key => $value) {
        if ($value == 'singular') {
                 unset($classes[$key]);
                 $classes = array_values($classes);
            }
    }
    return $classes;
}

1 Ответ

0 голосов
/ 08 июля 2011

Понял: исправил, выполнив remove_filter и просто скопировав body_classes родителя и добавив шаблон в список, у которого не должно быть «единственного» класса.

Ниже перечислены ошибки:1004 *

...