如何创建一个wordpress子主题

WordPress主题可能很棒,但我们都希望改变很多小事的例子.这里的颜色,那里的字体大小,也许在按钮上使用不同的呼叫来操作?

问题是,修改主题甚至略微防止您将来更新到更新版本,因为如果您尝试更新,则丢失所有更改.

如果您正在使用WordPress存储库的主题或您在ThemeForest上购买的主题,这不允许您在不必担心丢失修改的情况下使用所选主题的所有功能,但是你需要一个孩子主题.

在今天的周末Wordpress项目中,我将解释为什么你应该使用孩子主题以及如何完成工作.

在此帖子中,我们将介绍:

  • 儿童主题如何工作以及为什么使用它们

    • 更新
    • 组织

  • 创建一个孩子主题
  • 儿童主题力学
  • 主题制造商的笔记

    • 正确目录
    • 可修改的功能


注意:如果您在阅读此帖子后仍然在读取子主题时仍有问题,请让我们帮助!我们很棒的支持团队可以帮助您使用任何 wordpress问题,大或小-并且免费!无论是什么时间还是周末,我们的团队都可以24/7.

儿童主题如何工作以及为什么使用它们

子主题是依赖于父主题的单独主题,以了解其大部分功能.如果您使用的是子主题,WordPress将首先检查您的孩子主题,以查看是否存在特定功能.如果没有,它将使用父主题.这很好,因为它允许您只修改您需要的内容.

如果您计划在主题中修改单个字符,则应始终使用子主题.有两个非常好的原因:更新和组织.

更新

如果您在不使用子主题的情况下修改主题,则可以使用两种选择:您可以选择未来更新主题,或者您可以更新并丢失您对主题所做的任何更改.

后来的选项会在技术上工作,但不建议使用.即使您的更改易于复制和粘贴,为什么在每次更新中都会在错误易于的故障任务上花费两分钟?

不更新您的主题应该是不可能的.几乎所有的"为什么您的网站被黑了攻击"列表包含过时的软件作为安全问题的最高原因.您应该始终保持WordPress,主题和插件,无例外.

组织

当您为现有主题添加代码时,您将添加到码库,这可能是千万行.开发人员在您的网站上工作(以及,确实,您自己)将努力跟踪您的更改.至少有一个直接结果将是一个增加的发展账单.

由于除非另有说明,否则子主题返回父主题,您的子主题基本上是对现有主题的变更集.即使儿童主题只有几个文件,也可能导致广泛的更改,也可能导致大量更改,也许是100行代码.

创建子主题

创建一个子主题非常简单,所以你可以复制和粘贴下面的例子.

要为主题创建子主题,您需要执行以下步骤:

  1. 在Wordpress安装中创建主题目录
  2. 创建一个样式表,其中包含有关您的子主题
  3. 的信息

  4. 拉动您的父主题
  5. 的样式

一旦完成这些步骤,您可以激活您的子主题,您的网站将与以前看起来完全相同,但它将使用您的孩子主题.

所以让我们详细介绍上述步骤.对于此示例,我将为二十四个默认主题创建一个子主题.

1.首先,转到主题目录并为新主题创建一个文件夹.你可以将任何您想要的名字命名.为了清楚起见,我会命名我的主题twentyfourteen-child.

2.下一步是创建样式表文件.这必须名为style.css.将以下代码复制并粘贴到您刚刚创建的文件中:

加载GIST 614AA30CE07773030EB1

上面的代码中的两个必要项目是从"Theme Name"和"Template开始的行."主题名称告诉WordPress主题的名称是什么,这将在主题选择器中显示.该模板告诉WordPress哪些主题应该考虑作为父主题.除文本域和标签外,大多数其他人都是不言自明的.文本域用于翻译字符串.文本域应为您的主题是唯一的,只要使用翻译函数就应该使用.有关更多信息,请参阅WordPress开发人员的I18N.标签部分是WordPress主题存储库使用的标签列表.对于此示例,我查看了父主题的style.css文件,并简单地从那里复制了粘贴了标签.

3.此时,您的孩子主题工作很好.如果您激活它并重新加载页面所有内容将在那里,但它将没有样式信息.我之前提到的那个WordPress首先在儿童主题中寻找功能,如果它不存在它返回父主题.

在我们的情况下,我们 do 有一个样式表,所以wordpress数字不应该加载父文件.要确保我们加载父文件的样式表,我们将需要延长它.这可以在主题的functions.php文件中完成,因此现在继续并创建该文件.在此文件中,复制粘贴以下代码:

加载GIST 9356AA4D1F1F897FEBC60D3DDFD5B484

如果您不知道PHP,您只想更改一些样式,请不要担心为什么这项工作.现在可以随意进入您的样式表文件并开始进行更改.如果您想了解有关eNqueue的更多信息,我们就会在WPMU开发方面向WPMU开发带来了脚本和样式,以用eNqueue呈现出正确的方式.

儿童主题力学

那么儿童主题实际上是如何工作的?儿童主题在文件级工作.当在加载主题的过程中使用文件时,它检查它是否存在于子主题中.如果是,则使用该文件的内容.如果不是,则使用父主题中的相同文件.

此规则有一个例外,主题的函数文件.加载父主题中的functions.php文件.如果子主题的函数替换了父母,您将有一个故障的网站,或者您需要将父主题函数文件的整个内容复制到子主题中,这会对延长主题的目的进行击败.

修改功能时的工作流程是以下内容.如果要对标题进行更改,请将父主题的header.php文件复制粘贴到您的子主题中.编辑文件到您的心内容,保存并享受劳动的成果.

主题制造商的一些音符

如果您自己的主题,您可能需要遵循一些准则,以便让儿童主题创作更轻松.两个最重要的是学习get_stylesheet_directory()get_template_directory()之间的差异并创建可插拔功能.

右目录

当使用所提到的函数链接到资产时,您应该始终意识到get_template_函数系列将始终指向父主题的目录,而get_stylesheet_函数系列将始终指向子主题的目录.

加载GIST 614AA30CE07773030EB1
在上面的示例中,第一个链接从父主题拍摄其图像,第二个链接将其从子主题中取出.你应该使用哪一个没有良好的答案,这取决于你.

使用get_stylesheet_directory_uri()的顺途是,子主题开发人员可以通过简单地在正确的位置创建自己的图像.另一方面,如果在子主题中不存在图像,它根本不会显示.

原因是,如果孩子主题是活动的,则get_stylesheet_directory_uri()函数不检查(并且不知道)您正在加载哪个文件,因此它不会检查其存在,它将始终吐回到孩子主题的URI.

可修改的功能

您应该使用的其他方法是WordPress呼叫可插拔功能.这使得子主题作者可以覆盖您在父主题中定义的函数.这涉及在function_exists()检查中包装您的功能.

让我们假设您为命名为my_meta()的自定义帖子Meta Display创建功能.没有办法将子主题可以修改此功能,因为它无法定义两次.如果尚未定义(请记住,首先加载子主题的函数文件,则该解决方案仅创建此功能).

加载GIST 614AA30CE07773030EB1

结论

使用一些非常简单的复制粘贴步骤,您可以为主题创建未来的未来环境,这将为您节省您的头痛的 Lot .虽然在WordPress中使用内置主题编辑器可能很诱人,但如果您不使用子主题,它几乎总是会导致更多的问题.

在这里沿着教程遵循几分钟,您的网站和您的开发人员会感谢您.最后,如果您对儿童主题有任何巨大提示,请告诉我们.

1
订阅评论
提醒
0 评论
内联反馈
查看所有评论