【问题标题】:wordpress child theme loads child style twice, no parent stylewordpress子主题加载子样式两次,没有父样式
【发布时间】:2016-03-04 20:07:48
【问题描述】:

WP 手抄本围绕创建儿童主题的所有自相矛盾和错误信息让我纠结不已。子主题页面说我只需要style.css 和functions.php。那是错误的。父主题是二十五。我尝试了推荐的模式,然后按照产生的 PHP 错误并添加了投诉中提到的所有文件。我的子主题,twentyfifteen-child,现在包含:footer.php、functions.php、header.php、index.php、sidebar.php 和 style.css。

子 style.css 文件只包含样式表头:

Theme Name: Twenty Fifteen Child
Theme URI: http://dwp.avionicsspecialists.net/wordpress/wp-content/themes/twenty-fifteen-child/

因为法典是矛盾的,我尝试了主题 URI 文件夹的变体:二十五岁、二十五岁和二十五岁。没有任何变化影响结果。

functions.php 文件包含以下入队代码。

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    $parent_style = 'parent-style';

    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 )
    );
}

其他文件我直接从父 251 主题复制,没有任何更改。

当我激活子主题时,它会显示一个完全没有样式的 WP 站点。它加载子样式表两次,而不是父样式表。 Codex 说 get_template_directory_uri() 总是返回父主题路径。不对。在我的主题中,它返回子主题路径。在数据库中,wp_options.option_name = 'template' 的值为 'twentyfifteen-child'。

如果我手动将该值更改为“二十五”,我会得到更接近我需要的结果。这种情况会同时加载父样式表和子样式表。但是,手动更改数据库不是一个有效的解决方案。

我没有变体的想法。非常感谢任何帮助。

【问题讨论】:

    标签: css wordpress themes


    【解决方案1】:

    确保style.css 主题的标题是CSS 注释(它应该以/* 开头并以*/ 结尾)并且它有这一行:

    /* 
    Template:     twentyfifteen
    */
    

    编程经验法则:

    不要删除你不完全理解的代码。迟早会打到粉丝的。

    有关子主题及其标题的更多详细信息here。

    style.css 中的注释标题行 WordPress 需要能够识别主题并将其显示在管理面板中在“设计”>“主题”下作为可用的主题选项以及任何其他已安装的主题。

    【讨论】:

    • 我错过了模板行。我的示例没有显示评论标签 - 它只是显示了我从 Codex 子主题页面示例代码 link 编辑的行。该 Codex 页面可以更清楚地说明成功制作子主题所需的步骤。
    • 要成功创建一个有效的子主题,只需在style.css 的开头加上/* Template: parent-theme-folder-name */,但不建议这样做。根据父主题,父样式表可能会或可能不会加载。它会自动为twentyfifteen 加载,所以我的答案并没有过于复杂:)。
    【解决方案2】:

    在 wordpress 中创建子主题所需的唯一项目是 style.css 中的此信息:

       /*
       * Theme Name: Your Child Theme Name
       * Author: Who you are
       * Version: 1.0
       * Template: twentyfifteen
       */
    

    您不需要在functions.php 中包含URI 函数。

    【讨论】:

    • 萨曼莎,你的说法不太正确。请运行一个子主题,仅使用此单行作为标题:/* Template: twentyfifteen */
    • 感谢@samantha-ingram,您的回答确实有帮助。我还发现子functions.php文件中确实需要函数theme_enqueue_styles()才能使我的网站正常工作。
    猜你喜欢
    • 2013-07-13
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多