updated   : May 15, 2012
we now have 588 snippets
By : , on May 18, 2011 9:00 am

Add custom body class for specific pages

wordpress snippet

Adding this snippet to the functions.php of your wordpress theme will let you add a custom body class for specific pages. Add the second snippet to the header.php template replacing your default html body tag.

snippet :  PHPcopy
add_filter( 'body_class', 'my_neat_body_class');
function my_neat_body_class( $classes ) {
     if ( is_page(7) || is_category(5) || is_tag('neat') )
          $classes[] = 'neat-stuff';
     return $classes;
}
source →
snippet :  PHPcopy
<body <?php body_class(); ?>>
source →
  • http://www.squareonemd.co.uk Elliott the web design guy

    Now that’s a very neat snippet for custom page layouts – awesome!

    • http://wpsnipp.com Kevin Chard

      Cool glad you like it!

  • http://twitter.com/jamusreynolds Jamie Reynolds

    Very handy. Can something simular be done using page parent?

    • http://wpsnipp.com Kevin Chard

      Sure you could do something like this, however if your pages only have a single parent the body_class will already add “page-parent” class to the body. This is only a problem if you have many child pages as each sub page may also be a parent page. What is it that you are trying to do?

  • Anonymous

    Is there anything you need to do after you add the class? I’m not seeing any way to add a custom class for a page…

    • http://wpsnipp.com Kevin Chard

      Hi Trevor,
      Yes you will need to add the body_class(); function within the body tag I updated the snippet to avoid confusion.

  • Jhardy1974

    you this be combined with the other body class snippet so if the pages are not specified they default to have their own page as the class?

    • http://wpsnipp.com Kevin Chard

      Should be able to just do

           if ( is_page(7) || is_category(5) || is_tag(‘neat’) ){
                $classes[] = ‘neat-stuff’;          }else{
                $classes[] = ‘other-class’;

                }