Добавить собственное имя класса в тег Wordpress? - PullRequest
16 голосов
/ 18 марта 2010

Я бы хотел разместить директиву в файле functions.php моей темы, которая добавляет имя класса к тегу wordpress body. Есть ли для этого встроенный метод API?

Например, мой код тега тела ...

<body <?php if(function_exists("body_class") && !is_404()){body_class();} else echo 'class="page default"'?>>

И в результате в тег body записывается следующее (в зависимости от контекста, в котором представлена ​​страница (страница, публикация, вход в систему и т. Д.)

<body class="home blog logged-in"> 

В зависимости от дочерней темы, которую я использую в то время, я хочу, чтобы она была ...

<body class="home blog logged-in mychildthemename"> 

Ответы [ 6 ]

24 голосов
/ 18 марта 2010

Вы можете использовать фильтр body_class, например:

function my_plugin_body_class($classes) {
    $classes[] = 'foo';
    return $classes;
}

add_filter('body_class', 'my_plugin_body_class');

Хотя, очевидно, ваша тема должна вызывать соответствующую функцию body_class.

14 голосов
/ 16 августа 2013

Вы также можете использовать его непосредственно внутри функции WP body_class, которая добавит строку в класс тела.

например.

$class="custom-class";
<body <?php body_class($class); ?>>

http://codex.wordpress.org/Function_Reference/body_class

1 голос
/ 08 декабря 2011

Если вы пытаетесь добавить классы в тег body, находясь в области администрирования, не забудьте использовать хук admin_body_class. Обратите внимание, что это фильтр, который работает немного иначе, поскольку он передает строку классов, а не массив, поэтому ваш код будет выглядеть следующим образом:

add_filter('admin_body_class', 'my_admin_body_class');
function my_admin_body_class($classes) {
    return $classes . ' my_class';
}
0 голосов
/ 16 мая 2019

Если вы просто хотите добавить класс на основе шаблона страницы, обратите внимание, что теперь WP автоматически добавляет класс для каждого шаблона в тег body.

0 голосов
/ 22 января 2018

Попробуйте это ..

    add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
    if ( !is_front_page() ) {
        $classes[] = 'example';
    }
    return $classes;
}
0 голосов
/ 18 марта 2010

Просто отредактируйте header.php вашей темы и измените класс там (вручную или в соответствии с некоторыми предустановленными логическими правилами).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...