Как добавить кастомные классы к тегу в WordPress

Вопрос или проблема

Я работаю над настройкой своей темы WordPress и хочу добавить определенные классы к тегу body в зависимости от типа страницы или пользовательских условий. Как я могу изменить тег body, чтобы включить пользовательские классы, используя функции WordPress? Нужно ли редактировать файл functions.php или есть встроенный фильтр для этого?

Для этого используйте фильтр body_class, который позволяет вам изменять (добавлять или удалять) CSS-классы для тега body.

С помощью функции is_singular() вы можете проверить текущий тип поста. Если вы хотите протестировать что-то другое, здесь вы найдете несколько полезных функций, называемых условными тегами.

Код должен быть размещен в файле functions.php.

add_filter( 'body_class', 'body_custom_css', 10, 2 );

function custom_body_class( $classes, $css_class )
{
   // Добавьте класс, если post_type равен "foo" ИЛИ "bar"
   if ( is_singular( array( 'foo', 'bar' ) ) ) {
      $classes[] = 'foobar-class';
   }
   return $classes;
}

Ответ или решение

Чтобы добавить кастомные классы к тегу <body> в WordPress, вам нужно использовать фильтр body_class, который позволяет изменять или добавлять CSS классы к этому тегу. Вам также понадобятся условные теги для определения типа страницы или других условий, которые вы хотите использовать.

Шаги для добавления пользовательских классов к тегу <body>:

  1. Откройте файл functions.php вашей темы. Вы можете сделать это через панель администратора WordPress, выбрав «Внешний вид» -> «Редактор тем» или через FTP.

  2. Добавьте следующий код в functions.php:

add_filter( 'body_class', 'custom_body_class' );

function custom_body_class( $classes ) {
   // Условие для добавления класса, если тип записи - 'foo' или 'bar'
   if ( is_singular( array( 'foo', 'bar' ) ) ) {
      $classes[] = 'foobar-class'; // Добавляем собственный класс
   }
   // Пример добавления класса на главной странице
   if ( is_home() ) {
      $classes[] = 'home-class'; // Добавляем класс только для главной страницы
   }

   // Здесь вы можете добавлять другие условия.

   return $classes; // Возвращаем измененный массив классов
}

Объяснение кода:

  • Функция add_filter — используется для регистрации нашего пользовательского фильтра. Мы указываем, что используем body_class и связываем его с нашей пользовательской функцией custom_body_class.

  • Функция custom_body_class — это ваша функция, где вы добавляете условия. В примере мы используем is_singular() для проверки, является ли текущий пост типом ‘foo’ или ‘bar’. Если это так, мы добавляем класс foobar-class.

  • Возврат массива классов — в конце функции мы возвращаем измененный массив классов, который будет использоваться для тега <body>.

Дополнительные условия:

Вы можете использовать и другие условные теги, такие как:

  • is_page() — для проверки страниц.
  • is_category() — для категорий.
  • is_tag() — для меток.
  • is_single() — для одиночных записей.

Все эти функции помогут вам более точно определять, какие классы добавлять. Более подробную информацию о условных тегах можно найти в документации WordPress.

После внесения изменений не забудьте сохранить файл. Теперь у вас должны быть дополнительные классы в вашем <body> теге, соответствующие заданным вами условиям.

Оцените материал
Добавить комментарий

Капча загружается...