class для body

В WordPress есть замечательная функция body_class(); благодаря ей, разработчики тем получили штатное средство для стилизации отдельных шаблонов, страниц, записей и прочих форм контента.

Ее просто использовать:

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

Данная функция возвращает одно или несколько значений атрибута class для элемента body в зависимости от того, какой тип/шаблон вывода материала используется для просматриваемой страницы, вот часть из них: home, blog, archive, date, search, paged, attachment, error404, single postid-(id), author, category, tag, search-results, logged-in. Полный список можно посмотреть тут – codex.wordpress.org/Function_Reference/body_class.

Для чего это нужно?

Например, возникла необходимость стилизовать заголовки виджетов сайдбара отдельной записи каким-либо особым образом. Добавим body_class(); как я указал выше и пропишем в style.css следующее:

.single #sidebar .widgettitle { // значения классов заголовков могут отличаться
  color: red; // стили заголовков
} 

Теперь, при просмотре страницы записи заголовки виджетов сайдбара будут красного цвета. Вообще, вариантов масса, все зависит от задачи и фантазии.

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

// Добавляем значение class для body равное слагу записи
function add_slug_body_class( $classes ) {
  global $post;
  if ( isset( $post ) ) {
    $classes[] = $post->post_type . '-' . $post->post_name;
  }
  return $classes;
}
add_filter( 'body_class', 'add_slug_body_class' );

Этот код, добавит класс соответствующий ссылке на данную запись, т.е. если полный путь к записи такой – http://blog.verha.net/jquery-and-wordpress.html будет добавлен класс post-jquery-and-wordpress, особенно удобно при использовании пользовательских постоянных ссылок – %postname%.

На этом возможности фильтров не ограничиваются, можно присвоить класс в зависимости от браузера пользователя, добавить класс соответствующий категории записи, произвольный класс, класс в зависимости от наличия сайдбара и так далее.

Источники:
codex.wordpress.org/Function_Reference/body_class,
wpbeginner.com/wp-themes/wordpress-body-class-101-tips-and-tricks-for-theme-designers

Опубликовано

Обратите внимание на предыдущие записи: