Add a custom class name to Wordpress body tag?


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"> 
3/17/2010 9:47:27 PM

Accepted Answer

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.

9/3/2012 3:29:06 PM

You can also use it directly inside the WP body_class function which will append the string inside body class.


<body <?php body_class($class); ?>>

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow