2015-02-21 2 views
-1

У меня есть много страниц, как:Как иметь разные фоны для разных страниц в Wordpress?

  • страниц X.php
  • страниц Y.php
  • страниц Z.php

где выше 3 страницы необходимо иметь разные фоновый цвет. Остальные страницы/сообщения получают свой цвет фона из style.css файл.
У меня возникли проблемы с нанесением различных цветов фона на вышеуказанные 3 страницы, так как я использую Bootstrap 3, он оставляет некоторый запас, где пробелы в полях применяют фоновый цвет от файла style.css. Как это решить?

ответ

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 
    } 
} 
+0

Я попытался добавить **. ** тело класса между ** ** тегов, но это не похоже на работу, что мне не хватает? –

+0

Действительно ли ваш 'body' имеет' класс' '.body'? – rnevius

+0

@mevius: да, внутри style.css У меня есть класс как **. Body ** –

0

WordPress имеет очень удобную body_class() функцию именно для этой цели, что позволит Вам предназначаться тело различных страниц. Вот как это будет добавлено в файлы шаблона:

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

Подробнее в Кодекс: http://codex.wordpress.org/Function_Reference/body_class

0

Проще всего было бы применить CSS на классе тела. Вы можете просмотреть источник, чтобы получить идентификатор страницы.

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

EDIT: Другой способ - использовать фильтры для автоматического добавления классов на эти страницы. а затем назначьте классы, например .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;} 
+0

Я делаю это, я хочу избежать использования идентификатора страницы. –

+0

checkout мое редактирование –