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.