使用ADMIN_BODY_CLASS将当前自定义帖子类型的术语添加到ADMIN主体类

时间:2020-12-31 作者:moorewebx

我正在尝试将当前自定义帖子类型术语添加到WordPress管理页面的body类中。因此,当我查看已分配了术语的现有自定义帖子类型时,它会将该术语添加到body类中。

我已找到以下代码,但无法使其适用于我:

add_filter( \'admin_body_class\', \'rw_admin_body_class\' );
function rw_admin_body_class( $classes )
{
    if ( \'post\' != $screen->base )
        return $classes;

    global $post;
    $terms = wp_get_post_terms( $post->ID, \'product_cat\', array( \'fields\' => \'all\' ) );
    $terms = wp_list_pluck( $terms, \'slug\' );
    foreach ( $terms as $term )
    {
        $classes .= \' my_taxonomy-\' . $term;
    }

    return $classes;
}
有没有关于如何让它工作的建议?

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

我想你失踪了get_current_screen().

add_filter( \'admin_body_class\', \'rw_admin_body_class\' );
function rw_admin_body_class( $classes ) {
    $screen = get_current_screen();
    if ( \'post\' != $screen->base ) {
        return $classes;
    }

    global $post;
    $terms = wp_get_post_terms( $post->ID, \'product_cat\', array( \'fields\' => \'all\' ) );
    $terms = wp_list_pluck( $terms, \'slug\' );
    foreach ( $terms as $term )
    {
        $classes .= \' my_taxonomy-\' . $term;
    }

    return $classes;
}

SO网友:Ejaz UL Haq

您可以向wordpress自定义管理页面主体类添加自定义类,如下所示

$wpdocs_admin_page = add_options_page(__(\'Wpdocs Admin Page\', \'wpdocs_textdomain\'),
    __(\'Wpdocs Admin Page\', \'wpdocs_textdomain\'),
    \'manage_options\', \'wpdocs_textdomain\', \'wpdocs_admin_page\');

add_filter( \'admin_body_class\', \'rw_admin_body_class\' );
function rw_admin_body_class( $classes )
{
$screen = get_current_screen();
    if ( wpdocs_admin_page == $screen->id)
        return $classes;

    global $post;
    $terms = wp_get_post_terms( $post->ID, \'product_cat\', array( \'fields\' => \'all\' ) );
    $terms = wp_list_pluck( $terms, \'slug\' );
    foreach ( $terms as $term )
    {
        $classes .= \' my_taxonomy-\' . $term;
    }

    return $classes;
}

相关推荐

自定义角色无法访问wp-admin

我正在尝试创建一个自定义角色,非常类似于admin,但没有编辑/删除插件的功能。因为我不习惯使用插件,所以我编辑了这些函数。php文件添加如下内容:// Add a custom user role $result = add_role( \'new_role\', __( \'New Role\' ), array( \'edit_posts\' => true, // Allows user to edit their own posts \'