如何将自定义正文类添加到页面的管理区域?

时间:2018-11-26 作者:Rahul

我尝试在中使用此代码functions.php我的网站的儿童主题。

add_filter(\'admin_body_class\', \'custom_body_class\');
function custom_body_class($classes) {
    if (is_page(8))
        $classes[] = \'home-admin-area\';
    return $classes;
}
但未添加“家庭管理区”类。此代码中是否有错误?

编辑1:我使用is_page() 错误的后端页的函数。我也试过了,但不知怎么的,还是没用。

add_filter(\'admin_body_class\', \'custom_body_class\');
function custom_body_class($classes) {
    if ($_GET[\'post\']==8)
        $classes[] .= \' new-class \';
    return $classes;
}

2 个回复
最合适的回答,由SO网友:Anton Lukin 整理而成

使用admin_body_class 具有全局post\\u id和get_current_screen 功能:

add_filter(\'admin_body_class\', \'wpse_320244_admin_body_class\');

function wpse_320244_admin_body_class($classes) {
    global $post;

    // get_current_screen() returns object with current admin screen
    // @link https://codex.wordpress.org/Function_Reference/get_current_screen
    $current_screen = get_current_screen();

    if($current_screen->base === "post" && absint($post->ID) === 8) {
        $classes .= \' home-admin-area\';
    }

    return $classes;
}
还可以使用$pagenow变量。这种方式似乎更可取,因为get_current_screen() 在某些情况下可能未定义:

add_filter(\'admin_body_class\', \'wpse_320244_admin_body_class\');

function wpse_320244_admin_body_class($classes) {
    global $post, $pagenow;

    // $pagenow contains current admin-side php-file
    // absint converts type to int, so we can use strict comparison
    if($pagenow === \'post.php\' && absint($post->ID) === 8) {
        $classes .= \' home-admin-area\';
    }

    return $classes;
}

SO网友:butlerblog

admin_body_class 将其值作为字符串而不是数组传递。(这与body_class 它传递数组。(参见the documentation for admin_body_class)

因此,您需要的是:

add_filter(\'admin_body_class\', \'custom_body_class\');
function custom_body_class($classes) {
    if (is_page(8))
        $classes .= \' home-admin-area\';
    return $classes;
}
请注意它是如何添加为带前导空格的字符串的。

但是,我不确定这是否会起作用,因为我想知道您是否使用了正确的过滤器来完成所需的操作。您对的使用is_page() 让我想知道-这是你在管理部门做的事情吗?或者这是一个前端的东西?

结束

相关推荐

为什么要多次调用Pre_Get_Posts挂钩?

我正在使用pre_get_posts 然而,由于hook没有按预期工作,我发现函数被调用了4次,当第一个调用按预期运行时,后续调用将无法正确运行。我想知道为什么我的自定义挂钩被运行了不止一次!我找到了一个article that explains why this may happen, 但我很困惑,因为就我而言,这根本不应该发生。。。。代码:function exclude_category( $query ) { global $acorn_user; $tax_que