Wordpress - 如何为不同的页面分配单独的样式表?

时间:2013-11-23 23:15:42

标签: php wordpress wordpress-theming

我想弄清楚如何为不同的页面分配单独的样式表?我不想为我的首页使用相同的样式表,为我的博客及其相关页面使用页面模板和不同的样式表。

我的主题只包括首页,页面模板和博客。所以我想知道如何区分实际页面。它需要应用于所有博客页面。

所以我想知道我是否可以做这样的事情(添加到标题中):

<?php if ( 'front-page.php' ) { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); type="text/css" media="screen" />
<?php } elseif ( 'page.php' ) { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>"  type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>"  type="text/css" media="screen" />
 <?php } ?>

如果是首页或页面模板,则使用普通样式表。如果是其他任何内容,则使用博客样式表。如果可以这样做,任何人都可以帮我解释语法吗?

2 个答案:

答案 0 :(得分:4)

根据您的具体情况,通常这样做的最佳方法是在一个CSS样式表中。

您可以使用page-id选择器定位CSS文档中的特定WordPress页面:

.page-id-156 h1 { color: red; }

或者您可以按页面模板定位

.page-template-blog div { border: 1px solid black; }

body_class()中使用header.php函数时,这些类会自动附加到body元素

<body <?php body_class(); ?>

此处有关于该功能的更多信息http://codex.wordpress.org/Function_Reference/body_class

答案 1 :(得分:0)

jsrgnt answer非常适合。但是你需要使用不同的样式表,在你的functions.php上使用wp_enqueue_scripts

add_action( 'wp_enqueue_scripts', 'enqueue_so_20169099' );

function enqueue_so_20169099()
{
    # http://codex.wordpress.org/Conditional_Tags
    if( is_something() )
    {
        wp_enqueue_script( /* etc */ );
    }
}