如何在wordpress中为不同的页面设置不同的身体背景?

时间:2015-02-21 08:15:22

标签: html css wordpress wordpress-theming

我有很多页面:

  • 页-X.php
  • 页-Y.php
  • 页-Z.php

上面3页需要有不同的背景颜色。 其余的页面/帖子从 style.css 文件中获取 background-color
由于我使用的是Bootstrap 3,我在上面3页中应用不同的背景颜色时遇到了麻烦,它留下了一些边距,其中边距中的间隙应用 style.css 文件中的背景颜色。怎么解决这个问题?

3 个答案:

答案 0 :(得分:0)

您可以在functions.php文件中尝试这样做:

add_action('wp_head', 'show_template');
function show_template() {
    global $template;
    //$custom_template = array('page-X.php', 'page-Y.php', 'page-Y.php');

    // Return the template name including custom template with extension
    $template_name = str_replace('/', '', strrchr( $template, "/" ));

    // Now you can check your page and apply the css through 
    if( $template_name == "page-X.php" ) {
        ?>
        <style type="text/css"></style>
        <?php
    }
}

答案 1 :(得分:0)

WordPress有一个非常方便的body_class()函数,正是出于这个目的,它允许您定位各种页面的主体。以下是如何将其添加到模板文件中:

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

在食典委中阅读更多内容:http://codex.wordpress.org/Function_Reference/body_class

答案 2 :(得分:0)

最简单的方法是在身体类上应用css。您可以查看源以获取页面的ID。

body.page-id-3938{background:red;}

编辑:另一种方法是使用过滤器自动向这些页面添加类。然后将类似.red的类分配给它。

//Functions.php
if(is_page('X')){
add_filter( 'body_class', my_class_names($classes, 'red') );
}elseif(is_page('Y')){
add_filter( 'body_class', my_class_names($classes, 'blue') );
}elseif(is_page('Z')){
add_filter( 'body_class', my_class_names($classes, 'green') );
}
function my_class_names( $classes,$myclass ) {
    $classes[] = $myclass;
    return $classes;
}

// Styles.css file
body.red{background:red!important;}
body.blue{background:blue!important;}
body.green{background:green!important;}