函数.php如何根据模板名称添加css/js?

时间:2016-04-03 作者:Jeff

如何根据模板名称添加自定义CSS和JS文件?例如,我的普通页面都将有一个绿色的背景色。现在我想要这个Blue Template 将有一个额外的CSS文件完成的蓝色背景色。我该怎么做?

Blue.php

<?php
/*
  Template Name: Blue Template
*/
?>
<?php get_header(); ?>
<div class="container">
  <h1>This template has an blue background!</h1>
</div>
<?php get_footer(); ?>

functions.php

<?php
  function load_theme_files() {
    # Green background - Default Stylesheet, all pages need this one
    wp_enqueue_style(\'style\', esc_url( get_stylesheet_directory_uri() ).\'/style.css\');  

    # What I need - This should add blue.css to the header
    if ($currentTemplate == \'Blue Template\') {
      wp_enqueue_style(\'blue\', esc_url( get_stylesheet_directory_uri() ).\'/blue.css\');
    }
}
add_action(\'init\', \'load_theme_files\');
?>
这应该给所有正常的页面<link href="/style.css" rel="stylesheet" type="text/css". 我的蓝色模板将有蓝色。css低于我的正常样式。css。

我试过了if ( is_page_template( \'blue.php\' ) ) { # HERE THE BLUE CSS } 但这没有任何作用。

1 个回复
最合适的回答,由SO网友:kovshenin 整理而成

您可以使用wp_enqueue_style() 运行前get_header() 穿着你的蓝色。php文件。

如果您正在寻找一种在函数中实现这一点的方法。php文件,然后init 钩子对我来说有点太早了is_page_template(). 尝试wp_enqueue_scripts 改为挂钩:

add_action( \'wp_enqueue_scripts\', \'load_my_theme_files\' );
function load_my_theme_files() {
    if ( is_page_template( \'blue.php\' ) ) {
        wp_enqueue_style( ... );
    }
}
希望有帮助!

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();