The body_class() WordPress PHP function outputs the class names for the HTML body element. This function aids in applying distinct styles to different parts of your WordPress site.
Usage
Here’s a simple usage of the function where we add a custom class ‘my-custom-class’:
<body <?php body_class('my-custom-class'); ?>>
In the rendered HTML, this might appear as:
<body class="page page-id-2 page-parent page-template-default logged-in my-custom-class">
Parameters
- $css_class (string|string[]): Optional. Space-separated string or array of class names to add to the class list. Default is ” (empty string).
More Information
See WordPress Developer Resources: body_class()
Examples
Add a New Class to Body
add_filter( 'body_class', 'wp_body_classes' );
function wp_body_classes( $classes ) {
    $classes[] = 'new-class';
    return $classes;
}
In this example, the ‘new-class’ is added to the body classes.
Add a Class to a Specific Page Template
add_filter( 'body_class', 'custom_class' );
function custom_class( $classes ) {
    if ( is_page_template( 'page-example.php' ) ) {
        $classes[] = 'example';
    }
    return $classes;
}
Here, the ‘example’ class is added if the current page uses ‘page-example.php’ template.
Add Multiple Classes Conditionally
add_filter( 'body_class', 'wpdocs_custom_class' );
function wpdocs_custom_class( $classes ) {
    if ( is_page_template( 'page-example.php' ) ) {
        $classes[] = 'example';
    }
    if ( wpdocs_another_function() ) {
        $classes[] = 'another';
    }
    return $classes;
}
In this example, ‘example’ and ‘another’ classes are added based on certain conditions.
Remove a Specific Class from Body
add_filter('body_class', function (array $classes) {
    if (in_array('class-to-remove', $classes)) {
        unset( $classes[array_search('class-to-remove', $classes)] );
    }
    return $classes;
});
This example shows how to remove ‘class-to-remove’ from the body classes.
Add Class to Body on Specific Pages
add_filter( 'body_class', function( $classes ) {
    if ( is_page( 'login' ) ) {
        $classes[] = 'login';
    } elseif ( is_page( 'register' ) ) {
        $classes[] = 'register';
    } elseif ( is_page( 'password-reset' ) ) {
        $classes[] = 'reset';
    }
    return $classes;
});
In this example, depending on the page being viewed (‘login’, ‘register’, or ‘password-reset’), a specific CSS class is added to the body tag of the HTML document.