The body_class WordPress PHP filter allows you to modify the list of CSS body class names for the current post or page.
Usage
add_filter('body_class', 'your_custom_function'); function your_custom_function($classes) { // your custom code here return $classes; }
Parameters
- $classes (string[]): An array of body class names.
- $css_class (string[]): An array of additional class names added to the body.
More information
See WordPress Developer Resources: body_class Ensure that the filter function returns the array of classes after processing, or all of the classes will be cleared, impacting the visual state of the site.
Examples
Adding a custom class to the body
This code adds a custom class ‘my-custom-class’ to the body.
add_filter('body_class', 'add_my_custom_class'); function add_my_custom_class($classes) { $classes[] = 'my-custom-class'; return $classes; }
Adding a class based on post type
This code adds a class based on the current post type.
add_filter('body_class', 'add_post_type_class'); function add_post_type_class($classes) { if (is_singular()) { global $post; $classes[] = 'post-type-' . $post->post_type; } return $classes; }
Adding a class for users who are logged in
This code adds a ‘logged-in’ class for logged-in users.
add_filter('body_class', 'add_logged_in_class'); function add_logged_in_class($classes) { if (is_user_logged_in()) { $classes[] = 'logged-in'; } return $classes; }
Removing a specific class from the body
This code removes the ‘example-class’ from the body.
add_filter('body_class', 'remove_example_class'); function remove_example_class($classes) { if (($key = array_search('example-class', $classes)) !== false) { unset($classes[$key]); } return $classes; }
Adding a class based on the current day
This code adds a class with the current day of the week.
add_filter('body_class', 'add_day_of_week_class'); function add_day_of_week_class($classes) { $classes[] = strtolower(date('l')); return $classes; }