Php 是否将自定义类名添加到Wordpress主体标记?

Php 是否将自定义类名添加到Wordpress主体标记?,php,wordpress,Php,Wordpress,我想在我的主题的functions.php文件中放置一个指令,该指令在wordpress body标记后面附加一个类名。是否有用于此的内置API方法 例如,我的身体标签代码是 <body <?php if(function_exists("body_class") && !is_404()){body_class();} else echo 'class="page default"'?>> 只需编辑主题的header.php并在那里更改类(手动或根据一

我想在我的主题的functions.php文件中放置一个指令,该指令在wordpress body标记后面附加一个类名。是否有用于此的内置API方法

例如,我的身体标签代码是

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

只需编辑主题的header.php并在那里更改类(手动或根据一些预设的逻辑规则)。您可以使用
body_class
过滤器,如下所示:

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

add_filter('body_class', 'my_plugin_body_class');

当然,你的主题需要调用相应的函数。

如果你在管理区域试图向body标签添加类,记得使用
Admin\u body\u class
钩子。请注意,它是一个过滤器,其工作原理略有不同,因为它传递的是一个类字符串而不是数组,因此您的代码如下所示:

add_filter('admin_body_class', 'my_admin_body_class');
function my_admin_body_class($classes) {
    return $classes . ' my_class';
}

您还可以直接在WP body_类函数中使用它,该函数将在body类中附加字符串

例如

$class=“自定义类”;
试试这个

    add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
    if ( !is_front_page() ) {
        $classes[] = 'example';
    }
    return $classes;
}

如果您只想根据页面模板添加类,请注意,WP现在会自动将每个模板类添加到body标记。

要向筛选器添加更多类,只需添加另一行,将另一个值添加到数组中:

添加_过滤器('body_class','my_body_class'); 函数my_body_类($classes){


}

我不确定我是否明白你的问题-我只是浏览了一下经典主题,而
标记直接输出到
header.php
文件中。你到底在寻找什么样的API方法来存储和获取类名?嗨,pekka,我已经在问题中添加了我的body标签,以便更好地解释。我只想打开body_class()函数,将我的子主题名称添加到其中,这样我就可以在主主题中使用条件css,它只在特定子主题处于活动状态时才适用。这正是我想要的。谢谢你,理查德!注意:确保您的主题体标记(通常在header.php中)调用函数body_class()
$classes是一个数组,不能像这样向其追加字符串that@ShubhSheth对不起,你错了。请注意,这指的是
admin\u body\u类
过滤器,它不同于
body\u类
过滤器:明白了,但这仍然不是问题所在。类更新是在前端而不是管理员上完成的。问题标题没有指定这一点。在我看来,只要我们将答案限定为管理区域,它可能会帮助某人。应该是答案。通过函数添加类有点过分。
add_filter('admin_body_class', 'my_admin_body_class');
function my_admin_body_class($classes) {
    return $classes . ' my_class';
}
$class="custom-class";
<body <?php body_class($class); ?>>
    add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
    if ( !is_front_page() ) {
        $classes[] = 'example';
    }
    return $classes;
}
$classes[] = 'class-name';
$classes[] = 'class-name-two';

return $classes;