admin管理员组

文章数量:1122832

I have added this code to my child theme's functions.php file and use the new class but it styles the entire site, not the page I added to the code. What am I doing wrong?

add_filter('body_class','custom_body_class');

function custom_body_class($classes) {
    if( is_page('38034') ) {
        $classes[] = 'new-class';
        return $classes;
    }
}

I have added this code to my child theme's functions.php file and use the new class but it styles the entire site, not the page I added to the code. What am I doing wrong?

add_filter('body_class','custom_body_class');

function custom_body_class($classes) {
    if( is_page('38034') ) {
        $classes[] = 'new-class';
        return $classes;
    }
}
Share Improve this question edited Apr 30, 2013 at 8:14 Haymanpl asked Apr 30, 2013 at 7:52 HaymanplHaymanpl 931 gold badge5 silver badges9 bronze badges 2
  • The code returns an error: > Warning: join() [function.join]: Invalid arguments passed in C:\Users\brad\Desktop\InstantWP_4.3\iwpserver\htdocs\wordpress\wp-includes\post-template.php on line 393 class=""> – Haymanpl Commented Apr 30, 2013 at 8:12
  • 1 the return $classes; would need to be outside of the if( is_page() ) – Michael Commented Apr 30, 2013 at 9:24
Add a comment  | 

2 Answers 2

Reset to default 8

The ID can/should be given without quotes (otherwise if you a page with '38034' as slug/post_name, this will be used instead of the page with the ID 38034). And you want to return $classes no matter if you added your own or not.

add_filter('body_class', 'custom_body_class');
function custom_body_class($classes) {
    if (is_page(38034))
        $classes[] = 'new-class';
    return $classes;
}

Your function name does not match. Try this..

add_filter( 'body_class', 'custom_body_class' );

function custom_body_class( $classes ) {
    if ( is_page( '38034' ) ) {
        $classes[] = 'new-class';
        return $classes;
    }
}

本文标签: How do I add a custom body class for a specific page ID