Add a custom class name to Wordpress body tag?

php, wordpress

Solution

You can use the `body_class` filter, like so:

function my_plugin_body_class($classes) {
    $classes[] = 'foo';
    return $classes;
}

add_filter('body_class', 'my_plugin_body_class');

Although, obviously, your theme needs to call the corresponding `body_class` function.

Problem

I'd like to place a directive in my theme's functions.php file which appends a classname to the wordpress body tag. Is there a built-in API method for this? For example, my body tag code is... ``` <body <?php if(function_exists("body_class") && !is_404()){body_class();} else echo 'class="page default"'?>> ``` And it results in the following being written to the body tag (depending on the context in which the page is presented (page, post, logged-in, etc) ``` <body class="home blog logged-in"> ``` Depending on the child theme I'm using at the time, I want it to be... ``` <body class="home blog logged-in mychildthemename"> ```

Original source