body_class挂钩似乎仅适用于非管理员页面。当我执行

add_filter('body_class', 'add_body_classes');
function add_body_classes($classes) {
        $classes[] = 'myclass';
        return $classes;
}


如果要将类添加到管理页面的正文中,是否应该使用另一个钩子?

#1 楼

管理员页面不使用body_class过滤器,而是使用admin_body_class过滤器将类添加到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

#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的身体部位设置样式。

祝你好运