#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');