我正在设计一个主题,每个页面都有不同的文字,背景和其他元素的颜色。我能够使用以下方式设置每个页面的样式(以及相关的帖子类别):
<?php if ( is_home() || is_search() || is_archive ())
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/home.css" type="text/css" media="screen" />
<?php } elseif( is_category( 'Turismo a Bra' ) || is_page('Turismo a Bra'))
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/turismo-a-bra.css" type="text/css" media="screen" />
<?php } elseif ( is_category ('Eventi') || is_page('Eventi'))
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/eventi.css" type="text/css" media="screen" />
<?php } elseif ( is_category ('Arte e Cultura') || is_page('Arte e Cultura'))
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/arte-e-cultura.css" type="text/css" media="screen" />
<?php } elseif ( is_category ('Enogastronomia')|| is_page('Enogastronomia'))
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/enogastronomia.css" type="text/css" media="screen" />
<?php } elseif ( is_category ('Natura')|| is_page('Natura'))
{
?>
<link rel="stylesheet" href="<?php bloginfo('template_url')?>/css/natura.css" type="text/css" media="screen" />
<?php } else { ?>
<?php } ?>
当我(我有很多)子页面出现问题时。我希望他们被称为他们的父母。我虽然WP有is_sub_page(#),但没有运气。
你知道我应该在条件中添加什么来使标题在处理子页面时理解,在这种情况下,获取父级的ID并根据该样式页面。
我是php和wordpress的新手,它在我的头脑中很有意义,但我不知道如何用它来表达。
非常感谢,一个例子是here(子页面在右上角。
答案 0 :(得分:1)
要检查帖子是否从具有特定类别或页面标题的页面下降,那么您可以获取其父级并进行检查,例如:
in_category( 'Turismo a Bra', $post->post_parent )
由于您已经有很多代码并且您多次执行此操作,因此最好将整个检查封装在一个函数中:
function needs_style( $style, $the_post ){
$needs_style = false;
//check details of this post first
if( $the_post->post_title == $style ){ //does the same as in_page()
$needs_style = true;
}
elseif( in_category( $style, $the_post ) ){
$needs_style = true;
}
//otherwise check parent if post has one - this is done recursively
elseif( $the_post->post_parent ){
$the_parent = get_post( $the_post->post_parent );
$needs_style = needs_style( $style, $the_parent );
}
return $needs_style;
}
所以你的代码看起来像:
if ( is_home() || is_search() || is_archive ()) {
//set stylesheet
}
elseif( needs_style( 'Turismo a Bra', $post ) ) {
//set stylesheet
}
elseif( needs_style( 'Eventi', $post ) ) {
//set stylesheet
}