如何将类别正文类添加到管理中?

时间:2016-07-13 作者:markratledge

那么,为什么不使用此函数将类别类添加到admin body类中呢?

我在page source中看到当前的post ID是完整body类的一部分,因此使用admin_body_class 确实有效。

有什么想法吗?

function base_admin_body_class( $classes )
{
    // Current action
    if ( is_admin() && isset($_GET[\'action\']) ) {
        $classes .= \'action-\'.$_GET[\'action\'];
    }
    // Current post ID
    if ( is_admin() && isset($_GET[\'post\']) ) {
        $classes .= \' \';
        $classes .= \'post-\'.$_GET[\'post\'];
    }

   // Get Categories
    if ( is_admin() && isset($_GET[\'post\']) ) {

    $cats = wp_get_post_categories( $post->ID, array( \'fields\' => \'all\' ) );
    $cats = wp_list_pluck( $cats, \'slug\' );
    foreach ( $cats as $cat )
    {
        $classes .= \' category-\' . $cat;
    }
}

    return $classes;
}
add_filter(\'admin_body_class\', \'base_admin_body_class\');

1 个回复
最合适的回答,由SO网友:dan9vu 整理而成

您正在使用$post->ID 未定义。尝试$_GET[\'post\'] 而是:

// Get Categories
if ( is_admin() && isset($_GET[\'post\']) ) {
    $cats = wp_get_post_categories( (int)$_GET[\'post\'], array( \'fields\' => \'all\' ) );
    $cats = wp_list_pluck( $cats, \'slug\' );
    foreach ( $cats as $cat ) {
        $classes .= \' category-\' . $cat;
    }
}