无法获取要在子主题中加载的自定义css文件

时间:2017-06-08 作者:Alan

我想为子主题中的页面模板使用几个自定义css文件,但看看开发工具,我发现页面加载时没有请求它们。page-mp3-downloader的标题如下所示:

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" charset=utf-8>
    <title>Music Downloader App</title>
    <!-- =================  CSS Files  ================-->
    <link href="https://fonts.googleapis.com/css?family=Audiowide" rel="stylesheet">
    <link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" />
    <?php wp_head() ?>
</head>
以及功能。php文件是:

<?php
/* This enqueues the Parent style.css file for this child theme */
function my_theme_enqueue_styles() {

    $parent_style = \'twentyseventeen-style\'; // This is \'twentyseventeen-style\' for the Twenty Seventeen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'child-style\',
        get_stylesheet_directory_uri() . \'/style.css\',
        array( $parent_style ),
        wp_get_theme()->get(\'Version\')
    );
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );

/*=============  Code Added by Me ======================================- */

/* Code to enqueue(load) the custom.css file for sgt. peppers page */
function wpb_adding_styles() {
    if (is_page_template(\'page-sgt_peppers.php\')) {
       wp_register_style(\'custom-style\', get_stylesheet_directory_uri() . \'/custom.css\');
       wp_enqueue_style(\'custom-style\', get_stylesheet_directory_uri() . \'/custom.css\');
    }

    /* Load style sheets for MP3 Downloader page if  page requested */
    if (is_page(\'page-mp3-downloader.php\')) {
       wp_register_style(\'custom-style\', get_stylesheet_directory_uri() . \'/css/reset-mp3.css\');
       wp_enqueue_style(\'custom-style\', get_stylesheet_directory_uri() . \'/css/reset-mp3.css\');
       wp_register_style(\'custom-style\', get_stylesheet_directory_uri() . \'/css/main-mp3.css\');
       wp_enqueue_style(\'custom-style\', get_stylesheet_directory_uri() . \'/css/main-mp3.css\');
   }

}

add_action(\'wp_enqueue_scripts\', \'wpb_adding_styles\');
page-sgt\\u peppers的css文件。php在子主题根中加载良好。但我尝试了root和in/css/for page-mp3-downloader,但从未请求过自定义css文件。我已经阅读了关于排队的WP codex,但没有看到我遗漏了什么。这是我的目录结构child-theme. 感谢您的帮助。

更新:使用以下命令获取要加载的css文件:

/* Load style sheets for MP3 Downloader page if  page requested */
    if (is_page(\'mp3-downloader\')) {
        wp_enqueue_style(\'wpsx-reset-mp3-style\');
        wp_enqueue_style(\'wpsx-main-mp3-style\');
    }
我的假设正确吗?因为mp3下载程序不是从模板构建的,而是从页面修改的文件。php that is\\u page()是要使用的条件标记吗?

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

以下几点:

First:

您正在使用is_page_template() 在“\'page-sgt\\u peppers.php”队列中,然后使用is_page() 用于“page-mp3-downloader.php”。

您应该使用is_page_template() 对于两者。

Second:

您正在使用wp_register_style() 不正确。抄本:

注册CSS样式文件的安全方法later 与一起使用wp_enqueue_style().

请注意“以后使用”部分。注册脚本函数允许您调用wp_enqueue_style($handle); 以后不再反复列出路径和依赖关系。您根本不需要注册它们,但这是一种很好的做法,因此我将其保留在下面建议的修复中。

还应使用唯一句柄注册它们。法典:

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

也就是说,您可以尝试以下方法:

<?php

/* This enqueues the Parent style.css file for this child theme */
function my_theme_enqueue_styles() {

    $parent_style = \'twentyseventeen-style\'; // This is \'twentyseventeen-style\' for the Twenty Seventeen theme.

    wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'child-style\',
                      get_stylesheet_directory_uri() . \'/style.css\',
                      array( $parent_style ),
                      wp_get_theme()->get(\'Version\')
    );

    /*Register styles for later use*/
    wp_register_style(\'wpsx-custom-style\', get_stylesheet_directory_uri() . \'/custom.css\');
    wp_register_style(\'wpsx-reset-mp3-style\', get_stylesheet_directory_uri() . \'/css/reset-mp3.css\');
    wp_register_style(\'wpsx-main-mp3-style\', get_stylesheet_directory_uri() . \'/css/main-mp3.css\');



}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );

/*=============  Code Added by Me ======================================- */

/* Code to enqueue(load) the custom.css file for sgt. peppers page */
function wpb_adding_styles() {
    if (is_page_template(\'page-sgt_peppers.php\')) {
        wp_enqueue_style(\'wpsx-custom-style\');
    }

    /* Load style sheets for MP3 Downloader page if  page requested */
    if (is_page_template(\'page-mp3-downloader.php\')) {
        wp_enqueue_style(\'wpsx-reset-mp3-style\');
        wp_enqueue_style(\'wpsx-main-mp3-style\');
    }

}

add_action(\'wp_enqueue_scripts\', \'wpb_adding_styles\');

结束

相关推荐