Добавить класс на страницу сообщений

Я пытаюсь создать что-то уникальное для страницы Blog / Posts, которая не находится на первой странице. Тег тела теперь выглядит следующим образом: <body <?php body_class() ?>>
Но выполнение этого <body <?php body_class('blog') ?>> возвращает только <body class="logged-in"> или просто <body> если я не вошел в систему.

Я пробовал:

 <body <?php if ( is_home()) { echo 'class="blog"'; } else { body_class(); }?>> 

Это своего рода работы, но он полностью заменяет «вход в систему». Должен быть способ правильно добавить классы в тег body для сообщений?

Solutions Collecting From Web of "Добавить класс на страницу сообщений"

В файле функций вашей темы используйте фильтр body_class для добавления новых классов:

 function wpse_282694_body_class( $classes ) { if ( is_home() ) { $classes[] = 'blog'; } return $classes; } add_filter( 'body_class', 'wpse_282694_body_class' ); 

Если ваши архивы категорий, архивы тегов, архивы дат и результаты поиска также нуждаются в том же стиле, что довольно точно, проверьте для каждого из них так:

 if ( is_home() || is_date() || is_tag() || is_category() || is_search() ) {} 

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

Вы можете передать свой класс в качестве аргумента

 <body <?php if ( is_home()) { body_class('my-class'); } else { body_class(); }?>>