我想知道如何为不同的页面分配一个单独的样式表?我不想对我的首页使用相同的样式表,对我的博客及其相关页面使用不同的页面模板和样式表。
我的主题仅由首页、页面模板和博客组成。因此,我需要找出如何与实际页面进行区分。它需要应用于所有博客页面。
所以我想知道我是否可以这样做(添加到标题):
<?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 } ?>
如果是首页或页面模板,则使用普通样式表。如果是其他内容,则使用博客样式表。如果可以这样做,有人能帮我理解语法吗?
最合适的回答,由SO网友:Chip Bennett 整理而成
正确的方法是通过连接到wp_enqueue_scripts
. 您可以在回调中添加上下文条件:
function wpse124258_enqueue_scripts() {
if ( ! is_admin() ) {
// Conditionally enqueue
if ( is_front_page() ) {
// Front page stylesheet
wp_enqueue_style( \'front-page-style\', get_template_directory_uri() . \'/front-page-stylesheet.css\' );
} else if ( is_page() ) {
// Static page style
wp_enqueue_style( \'static-page-style\', get_template_directory_uri() . \'/front-page-stylesheet.css\' );
} else {
// Default style
wp_enqueue_style( \'default-style\', get_stylesheet_uri() );
}
}
}
add_action( \'wp_enqueue_scripts\', \'wpse124258_enqueue_scripts\' );
有关更多信息,请参阅
wp_enqueue_style()
.
SO网友:s_ha_dum
你要找的是conditional tags, 尤其地is_front_page
, is_page
或is_page_template
您的代码可能如下所示:
if ( is_front_page() ) { ?>
<link rel="stylesheet" href="<?php bloginfo(\'stylesheet_url\'); ?>"type="text/css" media="screen" /><?php
} elseif ( is_page() ) { ?>
<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
}
但是,如果要针对特定模板,可以使用
is_page_template
:
if (is_page_template(\'some-template.php\')) {