根据父页面更改背景颜色

时间:2011-04-29 作者:jmysona

希望这将是一个简单的问题。

我创建了Wordpress模板,现在我想将该模板用于多个页面,但我希望某些元素(如页脚、页眉等)的背景颜色不同,这取决于父元素。假设我现在有了父A(绿色背景)和父B(白色背景),当我创建父A的子A时,我希望它自动有绿色背景,我知道可以使用

<div class="post <?php foreach((get_the_category()) as $cat) { echo $cat->cat_name . \' \'; } ?>"> </div>

我需要一些建议什么是最好的方法。

我希望它有意义,如果我把它弄糊涂了,很抱歉。

非常感谢,

3 个回复
SO网友:Geert

使用body_class(), 默认情况下,WordPress会添加如下类parent-pageid-43 对它。不过,这只深入了一层。

下面的代码适用于父页面的任何祖先,而不仅仅是子页面。它依赖于is_page_or_ancestor plugin 为此。

正如凯撒所说,身体课程是一条必由之路。您可以通过修改$parents 大堆

add_filter(\'body_class\', \'my_body_class\', 10, 2);

function my_body_class($wp_classes, $extra_classes)
{
    // List of parent pages with custom template
    $parents = array(
        // page ID => body class
        43 => \'template-a\',
        57 => \'template-b\',
    );

    // Loop over each parent
    foreach ($parents as $page_id => $class)
    {
        // http://wordpress.org/extend/plugins/is-page-or-ancestor/
        if (is_page_or_ancestor($page_id))
        {
            // Add body class
            $wp_classes[] = $class;
        }
    }

    // Add the extra classes back untouched
    return array_merge($wp_classes, (array) $extra_classes);
}

SO网友:kovshenin

你可能想看看$post->post_parent 拥有全球$post 在你的循环中,基于此你可以选择你的背景色。

SO网友:kaiser

如果您使用<body <?php body_class(); ?>> 在模板中运行。这会给你一个.page-child 在可以轻松设置样式的子页面上。只需复制样式并在定义前加上前缀.page-child. 然后重新设计样式。

结束

相关推荐