Recently a project required me to make some CSS changes to the admin side of my posts in which a class was added to the body based on the current posts category. In this particular instance it need to be done to the WooCommerce products.
So if we were editing a product in the “Shoes” category it would add a body class containing that category name. To do this we use the following snippet:
add_filter( 'admin_body_class', 'mwx_admin_body_class' );
function mwx_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' ) ); // 'product_cat' is the taxonomy
$terms = wp_list_pluck( $terms, 'slug' );
foreach ( $terms as $term )
{
$classes .= ' mwx_taxonomy-' . $term; // ' mwx_taxonomy-' will prepend the class. We put a space in front of it to prevent merging of other classes
}
return $classes;
}