Как добавить класс к тэгу body с помощью php?
Как сделать так, что бы при входе на сайт (сделан на wordpress) с выбором определенной роли (подписчик, автор) к тэгу body добавлялся класс со значением роли.
Например, если зайти на сайт, выбрав роль подписчика, то к тэгу body добавлялся класс subscriber?
Для этого нужно убедиться, что в шаблоне используется функция body_class().
Для этого в HTML странице посмотрите, если там к BODY добавляются классы то все ОК, увидите примерно такое:
Если все работает. То классы можно добавлять через фильтр
body_class. Такой код добавь в functions.php:// добавим роли текущего пользователя в классы body add_filter('body_class', function( $classes ){ if( is_user_logged_in() ) $classes[] = implode(' ', wp_get_current_user()->roles ); return $classes; } );Еще пример для наглядности:
Классы можно добавить с применением условий. Добавим класс только для постоянных страниц: is_page().
add_filter('body_class','my_class_names'); function my_class_names( $classes ) { // добавим класс 'it__is__page' в массив классов $classes if( is_page() ) $classes[] = 'it__is__page'; return $classes; }Это только демонстрация: для у записей выводятся из типы и класс страницы уже в классах есть...
Список условий который можно использовать смотрите в Условных тегах. Ну, вообще там можно использовать и другие условия, но это хороший список для начала...
Большое спасибо, Вы не представляете как меня выручили!!!
А как можно задать свой класс из php шаблона страницы?
Используй фильтр описанный выше в этом шаблоне страницы, перед вызовом get_header().
Или можешь в functions.php использовать фильтр описанный выше, в нем создать условия для определения твоего шаблона станицы с помощью is_page_template()
В том то и дело что использую фильтр перед вызовом get_header() в шаблоне, но класс не добавляется...
Мне надо именно из php шаблона страницы добавить класс, так как проект большой и добавлять свои коды в functions.php под разные страницы не желательно и не так удобно как в сам файл шаблона страницы, лучше все прописать в файл шаблона для конкретной страницы.
Поправочка... в прошлый раз пробовал класс не добавлялся, сейчас пробую и уже добавляется.. возможно где то, что то пропустил или что то препятствовало выводу класса.
Благодарю за помощь!