Как добавить пользовательский класс body для страниц, которые не являются главной страницей?

#php #wordpress

#php #wordpress

Вопрос:

Я пытаюсь добавить пользовательский класс body .custom-body на сайте WordPress ко всем страницам, которые НЕ являются главной страницей:

В мой functions.php я добавил следующий фильтр:

 if ( !is_front_page() ) {
    add_filter('body_class','my_class_names');
    function my_class_names($classes) {
        // add 'class-name' to the $classes array
        $classes[] = 'custom-body';
        // return the $classes array
        return $classes;
    }
}   
  

В моем заголовке я вызываю body-функцию:

<body <?php body_class(); ?>>

Проблема в том, что custom-body добавляется ко всем страницам, т.Е. оператор if, похоже, не работает.

Есть идеи, как заставить это работать?

Комментарии:

1. Посмотрите правильно, поэтому давайте просто проверим, чтобы убедиться, какой URL, по вашему мнению, является front_page?

2. Front_page — это статическая первая страница (установленная в серверной части), которую вы вызываете при доступе к корневому домену, например, loclahost / MyTheme

Ответ №1:

Условное добавление CSS-класса вместо фильтра решило проблему:

 function my_class_names($classes) {
    // add 'class-name' to the $classes array
    if( !is_front_page() ) $classes[] = 'custom-body';
    // return the $classes array
    return $classes;
}
add_filter('body_class','my_class_names');