add_filter('body_class', 'add_body_classes');
function add_body_classes($classes) {
$classes[] = 'myclass';
return $classes;
}
如果要将类添加到管理页面的正文中,是否应该使用另一个钩子?
#1 楼
管理员页面不使用body_class
过滤器,而是使用admin_body_class
过滤器将类添加到admin主体标签。#2 楼
Mamaduka的回答向我指出了正确的方向,这是在仪表板中向主体添加类的代码。回调函数应为HTML class属性返回有效值,即空格分隔的类命名,也不要忘记在任何现有的类之前(或附加),您应该通过阅读代码来理解。
add_filter( 'admin_body_class', 'my_admin_body_class' );
/**
* Adds one or more classes to the body tag in the dashboard.
*
* @link https://wordpress.stackexchange.com/a/154951/17187
* @param String $classes Current body classes.
* @return String Altered body classes.
*/
function my_admin_body_class( $classes ) {
return "$classes my_class";
// Or: return "$classes my_class_1 my_class_2 my_class_3";
}
评论
这可能应该是选定的答案。 Asker的原始实现返回一个数组,但是该挂钩接受以空格分隔的字符串:https://developer.wordpress.org/reference/hooks/admin_body_class/。因此,选定的答案具有误导性,因为它仅部分回答了问题,没有提供参考。
– pwbred
2015年10月2日,19:30
如果您不是程序员,则使PHP更易于实现,并且在双引号内不使用字符串与return $ classes相同。我的班级,我的其他班级”;
–乔纳斯·隆德曼(Jonas Lundman)
18年6月10日在11:42
我使用return sprintf('%sfolded',$ classes);根据我的方便。
–蛮横的
19-3-14在6:27
#3 楼
添加多个类,尤其是当它们必须根据某些条件显示时,可能会导致HTML输出不一致。要正确设置其格式并具有删除重复项或现有类的能力,我们可以将它们转换为array和最后连接回字符串:
add_filter('admin_body_class', static function ($classes) {
$classes = explode(' ', $classes);
$classes = array_merge($classes, [
'my-class-one',
'my-class-two',
'my-class-three',
some_function(),
another_function(),
]);
return implode(' ', array_unique($classes));
});
#4 楼
我用于编辑WP admin / Dashboard admin_head的钩子之一 function remove_screen_options(){
$hideCSS = '<style>#screen-meta-links { display: none; }</style>';
}
将css放入您的管理部分中
并通过使用类.wp-admin,您可以为admin的身体部位设置样式。
祝你好运
评论
值得注意的是admin_body_class过滤器方法中的$ classes参数是字符串,而不是数组developer.wordpress.org/reference/hooks/admin_body_class
–罗马Epicnerd Sharf
16年5月25日在16:30
我希望@Mamaduka会将评论写到答案中。在我注意到罗马人的评论之前,我只是拆除了整个站点。
–泽斯
20/11/15在13:35