我想在我的主题的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">
答案 0 :(得分:24)
您可以使用body_class
过滤器,如下所示:
function my_plugin_body_class($classes) {
$classes[] = 'foo';
return $classes;
}
add_filter('body_class', 'my_plugin_body_class');
虽然很明显,您的主题需要调用相应的body_class
函数。
答案 1 :(得分:14)
你也可以直接在WP body_class函数中使用它,它会将字符串附加到body类中。
例如
$class="custom-class";
<body <?php body_class($class); ?>>
答案 2 :(得分:1)
如果您在管理区域中尝试将类添加到body标记,请记住改为使用admin_body_class
挂钩。请注意,它是一个稍微不同的过滤器,因为它传递的是一串类而不是一个数组,所以你的代码看起来像这样:
add_filter('admin_body_class', 'my_admin_body_class');
function my_admin_body_class($classes) {
return $classes . ' my_class';
}
答案 3 :(得分:0)
试试这个..
add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
if ( !is_front_page() ) {
$classes[] = 'example';
}
return $classes;
}
答案 4 :(得分:0)
如果您只想基于页面模板添加类,请注意WP现在会自动将每个模板的类添加到body标签。
答案 5 :(得分:0)
要向过滤器添加更多类,只需添加另一行即可向数组添加另一个值:
add_filter('body_class','my_body_classes'); 函数my_body_classes($ classes){
$classes[] = 'class-name';
$classes[] = 'class-name-two';
return $classes;
}
答案 6 :(得分:-2)
只需编辑主题的header.php并在那里更改课程(手动或根据某些预设的逻辑规则)。