Wordpress - 在index.php上加载自定义css

时间:2015-05-29 08:02:27

标签: php css wordpress layout

我正在尝试为index.php加载自定义布局样式。我的主题叫做kendo,我试图在functions.php

中提取一些自定义样式表

样式表单独工作(例如,如果我删除一行),但它们会相互覆盖。我的代码有问题吗?

function kendo_scripts() {
    wp_enqueue_style( 'kendo-style', get_stylesheet_uri() );

    if (is_page_template('index'))  {
        wp_enqueue_style( 'kendo-layout-style1', get_template_directory_uri() . '/layouts/no-sidebar.css' );
    }
    if (!is_page_template('index')) {
        wp_enqueue_style( 'kendo-layout-style2', get_template_directory_uri() . '/layouts/content-sidebar.css' );
    }

2 个答案:

答案 0 :(得分:0)

您使用错误的is_page_template挂钩参数。使用带扩展名的完整模板文件名index.php不是index

See function is_page_template reference.

这是可能的问题。示例代码:

/*Add Hook*/
add_action( 'wp_enqueue_scripts', 'kendo_scripts' );

/*Define the callback*/
function kendo_scripts() {

   wp_enqueue_style( 'kendo-style', get_stylesheet_uri(), array(), null, 'all' );

   if ( is_page_template( 'index.php' ) )  {

      wp_enqueue_style( 'kendo-layout-style1', get_template_directory_uri() .'/css/bootstrap.min.css', array(), null, 'all' );

   } else {

      wp_enqueue_style( 'kendo-layout-style2', get_template_directory_uri() . '/layouts/content-sidebar.css', array(), null, 'all' );
   }
}

另请参阅StackExchange中的2个参考答案:onetwo

答案 1 :(得分:0)

不会将此添加到header.php更容易......

<?php if (is_front_page()) { ?>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory'); ?>/css/stylesheet1.css"/>
<?php } else { ?>
<link rel="stylesheet" type="text/css" href="<?php bloginfo('stylesheet_directory'); ?>/css/stylesheet2.css"/>
<?php } ?>