页面模板无法加载正确的CSS文件

时间:2014-08-04 作者:coolpup

我无法为我的页面模板加载正确的css文件。页面正在正确加载模板,但仍使用默认css文件。

这是我用来加载页面模板的css文件的代码:

if (is_page_template(\'page-templates/page-nosidebar.php\')) {
        wp_enqueue_style(\'authorLuncheon-layout-style\', get_template_directory_uri() . \'/layouts/no-sidebar.css\');
    } else {
        wp_enqueue_style(\'authorLuncheon-layout-style\', get_template_directory_uri() . \'/layouts/content-sidebar.css\');
    }
这是包含上述代码的整个函数:

function authorluncheon_scripts() {
wp_enqueue_style( \'authorluncheon-style\', get_stylesheet_uri() );

    if (is_page_template(\'page-templates/page-nosidebar.php\')) {
        wp_enqueue_style(\'authorLuncheon-layout-style\', get_template_directory_uri() . \'/layouts/no-sidebar.css\');
    } else {
        wp_enqueue_style(\'authorLuncheon-layout-style\', get_template_directory_uri() . \'/layouts/content-sidebar.css\');
    }

wp_enqueue_script( \'authorluncheon-navigation\', get_template_directory_uri() . \'/js/navigation.js\', array(), \'20120206\', true );

wp_enqueue_script( \'authorluncheon-skip-link-focus-fix\', get_template_directory_uri() . \'/js/skip-link-focus-fix.js\', array(), \'20130115\', true );

if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
    wp_enqueue_script( \'comment-reply\' );
}
}
谢谢你的帮助!

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

问题似乎是它一开始没有识别出它是一个页面,因此无法识别是否有模板应用于它。

已更改

if (is_page_template(\'page-templates/page-nosidebar.php\')) {

if (is_page() && !is_page_template(\'page-templates/page-nosidebar.php\')) {

SO网友:Pieter Goosen

您的代码有一些问题,我将带您解决。

PROBLEM 1

是否正在使用

  • wp_enqueue_style()

  • wp_enqueue_script()

  • wp_register_style()

  • wp_register_script(),

    它们都有共同的第一个参数,$handle. 这是

    $handle

    (string)(必选)样式表的名称(该名称应唯一,因为它用于标识整个系统中的脚本)。

    默认值:无

    正如你所见,$handle 需要是唯一的。您在上使用了两次authorLuncheon布局样式two different stylesheets. 记住,如果你正在注册AND 将样式或脚本排入队列$handle 相同脚本或样式的参数在两个函数中必须相同

    SOLUTION TO PROBLEM 1

    您应该更改其中一个副本$handles

    PROBLEM 2

    我不知道你是无意中漏掉了它还是只是没有在你的主题中添加它,但你应该always 将包含脚本和样式的函数挂钩到wp_enqueue_scripts. 这是将脚本和样式添加到主题前端的正确方法,也是我强调的唯一方法

    SOLUTION

    您的代码应该是这样的。顺便说一句,我将更改我的条件,以检查您是否不在此特定页面模板上(!is_page_template(\'page-templates/page-nosidebar.php\'), 做点什么,或者做点别的,因为你最可能使用这个特定的页面模板,而不是任何其他模板。我已经更改了代码,所以您可以复制并粘贴它:-)

    function authorluncheon_scripts() {
    wp_enqueue_style( \'authorluncheon-style\', get_stylesheet_uri() );
    
        if (!is_page_template(\'page-templates/page-nosidebar.php\')) {
            wp_enqueue_style(\'authorLuncheon-layout-style2\', get_template_directory_uri() . \'/layouts/content-sidebar.css\');
        } else {
            wp_enqueue_style(\'authorLuncheon-layout-style1\', get_template_directory_uri() . \'/layouts/no-sidebar.css\');
        }
    
    wp_enqueue_script( \'authorluncheon-navigation\', get_template_directory_uri() . \'/js/navigation.js\', array(), \'20120206\', true );
    
    wp_enqueue_script( \'authorluncheon-skip-link-focus-fix\', get_template_directory_uri() . \'/js/skip-link-focus-fix.js\', array(), \'20130115\', true );
    
    if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
        wp_enqueue_script( \'comment-reply\' );
    }
    }
    
    add_action( \'wp_enqueue_scripts\', \'authorluncheon_scripts\' );
    

结束

相关推荐

Bootsrap.css与自定义WordPress主题中的style.css重叠

在创建自定义主题时,我面临一个问题http://templategraphy.com/wp-demo/landro/ 从外观上看,它看起来不太好,因为它不支持样式。css默认情况下,它显示引导中的所有css属性。最小css。我想让主题看起来像这个htmlhttp://templategraphy.com/demo/landro/ 我应该怎么做才能使主题从样式中获取其所有css属性。css。提前感谢