Add term of current custom post type to admin body class using admin_body_class
-
22-04-2021 - |
Question
I am trying to add the current custom post type term to the body class of my WordPress admin page. So when I am viewing an existing custom post type that has been assigned a term it will add that term to the body class.
I have found the following code but cannot get it to work for me:
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;
}
Any pointers on how to get this working?
Solution
I think you're missing 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;
}
OTHER TIPS
You can add custom-classe to the your wordpress custom admin page body classes like the following
$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;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange