子主题,Functions.php问题

时间:2015-12-14 作者:Veeps

我一直在为Fukasawa版本的一个简单的儿童主题而努力,可能太久了。

我知道@import方法已被弃用。我也知道排队是首选方法。但是

我第一次尝试The Codex, 这似乎很容易理解(尽管我后来读了很多书,上面写着“无视法典”)。我已经看到“仪表板>>外观>>主题”可以识别我的孩子主题(fukasawa孩子)进行预览/激活。

但是,当谈到“排队”时,我没有做到,结果是“一点风格都没有”。我的网站看起来像一个毫无秩序的列表。

我认为我分析过度了,但我有太多的问题无法找到答案(这就是为什么我认为我分析过度了):

/*
Theme Name: Fukasawa Child Theme
Theme URI: my_website_url/fukasawa-child/     /* Q1 - should this uri actually be \'my_website/wp-content/themes/fukasawa-child\' - which is the true path of where it sits, or is there some unwritten rule that assumes \'wp-content/themes/\' ??? */
Description: child theme for Fukasawa
Author: my name (veeps)
Author URI: my_uri.com                       /* /Q2 - can I do this, as the customizer?
Template: fukasawa                         //codex says to leave just like parent
Version: 1.05
*/
问题3-以上是我的函数引用的(css打开信息)。php以后?

下一步:

function theme_enqueue_styles() {

    $parent_style = \'parent-style\'; // Q4 - should \'parent-style\' be replaced by \'fukasawa\', or is that part of some pre-defined wp_universal_variable?

    wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
    wp_enqueue_style( \'child-style\', get_stylesheet_directory_uri() . \'/style.css\',  //should I eliminate the "...directory..." part of the get method?
        array( $parent_style )
    );
}
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
如果引用了“get\\u template\\u directory\\u uri()”,并且父级和;孩子,如果我(codex)指示我让他们保持原样(例如,文件名为style.css和“fukasawa”作为主题…可能是为了让与我不同的新手更容易地生活),那么php如何知道在哪里寻找父母与孩子?

1 个回复
SO网友:Mayeenul Islam

实际上,我们每个QA只处理一个问题,但基本问题可以用简单的方式澄清,我们可以这样进行:

首先,让我为您创建一个初步的Fukasawa儿童主题。

我在里面做了个文件夹themes/ 文件夹,命名something. 在文件夹里我做了一个style.css 具有以下内容:

/**
 * Theme Name: whatever
 * Template: fukasawa
 */
然后我在名为functions.php 并增加了以下内容:

<?php
function theme_enqueue_styles() {
    wp_enqueue_style( \'kauwa-style\', get_template_directory_uri() .\'/style.css\' );
}
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
在我的/wp-admin/themes.php 现在我有一个主题名为;不管怎样;,并将其激活为Fukasawa的儿童主题。

答案:

子主题作用于父主题的文件夹名称,在本例中是fukasawa 我们在template 在样式表中。

TESTING TESTING: 重命名文件夹fukasawafuakasawa-kauwa 在你的style.css 在中执行相同操作template 指令fukasawa-kauwa, 您可以看到“您的孩子”主题仍然有效

这个style.css 是子主题的基础。然后,我们添加了functions.php 将父主题的样式表添加到主题中。你可以看到我把手柄的名字改成了奇怪的名字。我想你得到了答案。:)

我不回答Q1和Q2,因为它们都与儿童主题无关。

将主题的资源排队:

我们不需要再次加载子主题的样式表,因为它已经被WordPress读取了。感谢Pieter指出这一点。但您需要清楚一件事:因为您正在处理父主题的特性,所以您必须提到,您正在尝试从您的子主题加载一些内容,而不是从父主题加载。一种方法是使用get_stylesheet_directory_uri(), 它说WP是从子主题加载内容,而不是从其父主题加载内容。

相关推荐

Child-theme breaks site

所以,我有一个子主题,里面除了所需的CSS文件之外什么都没有。一旦我激活了这个儿童主题,我的整个网站就关闭了。最后我有两个问题:激活一个只有CSS的子主题怎么能破坏我的网站</我怎样才能回到我原来的主题</这些是网站给我的错误:Warning: require_once(/wp-content/themes/interio_child/admin/options-framework.php) [function.require-once]: 无法打开流:中没有此类文件或目录/wp-c