2010-08-19 77 views
3

早上好,Wordpress中每页的自定义CSS

我为我们网站内的某些页面创建了不同的背景和其他一些图片。目前,以下代码与我们网站上的“孩子”页面配合良好。

<body<?php if (is_page(array('kids'))) { 
echo ' class="kids" '; } ?>> 

我想知道如何去添加相同的CSS到“在”孩子页面下的其他页面。所以,如果你去孩子们/块派对,我会如何将它添加到代码来调用特殊的CSS?

我曾尝试以下

<body<?php if (is_page(array('kids, kids/block-party'))) { 
echo ' class="kids" '; } ?>> 

逗号似乎并没有因为某些原因注册。

这是一个wordpress运行网站。

感谢

回答

4

另一种选择是简单地用

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

更换

<body> 

您就可以指定它它通过CSS如下所示:

body.page-id-2, body.parent-pageid-2 { background-color: red; } 

其中ID是您定位的页面/父页面的ID。这将使您的模板保持逻辑清晰,并允许您使用当前方法使用的相同自定义选项。

+1

感谢您的支持,我最终可能会使用该代码。 – 2010-08-19 18:38:55

3

想通了,我需要的'身边

<body<?php if (is_page(array('newsletter-1', 'newsletter-2', 'newsletter-3'))) { echo ' class="myclass" '; } ?>> 
1

我可能想过这个,但这是我的解决方案。

下面的脚本自动获取特定父页面的所有子项并打印出您需要的类。如果您不想手动更新子页面列表,该解决方案非常适用。

这正好在你的header.php文件:

<?php 
    //set page id 
      $page_id = '98'; 

      //get page's children 
    $children = get_pages('child_of='.$page_id); 
    foreach($children as $child){ 
     $children_ids = $child->ID; 
    } 

    if(is_page($page_id) || is_page($children_ids)){ 
     echo 'class="kids'; 
    } 

>

谢谢,我希望这有助于!

1

说明: 我知道3个当前的答案是WP的这个问题的一个常见的解决方案,但实际上,我讨厌它。它产生臃肿的HTML和单片CSS:/

答: 你可以使用分配给任意数量的页面模板文件中添加特定的CSS/JavaScript的,像这样:

<?php 
function my_scripts_method() { 
    wp_deregister_script('jquery'); 
    wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'); 
    wp_enqueue_script('jquery'); 
}  

add_action('wp_enqueue_scripts', 'my_scripts_method'); 
?> 

来源:http://codex.wordpress.org/Function_Reference/wp_enqueue_script

+0

为你的仇恨+1 – 2013-02-01 13:08:41