Php 是否将自定义类名添加到Wordpress主体标记?
我想在我的主题的functions.php文件中放置一个指令,该指令在wordpress body标记后面附加一个类名。是否有用于此的内置API方法 例如,我的身体标签代码是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并在那里更改类(手动或根据一
<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;