我正在使用Genesis子主题,我想对其进行一些自定义更改,但希望能够在新版本发布时进行更新,而不会丢失我的编辑。我对亲子实践很熟悉,但既然我的主题已经是《创世纪》中的一个孩子,那么最好的方法是什么呢?
首先,我尝试创建一个父子主题,但不仅部分标记不同,而且我还丢失了父子主题中的所有小部件部分
-创建了一个具有样式的新目录。css并具有以下代码:
/*
Theme Name: parent-child-child
Template: genesis
*/
@import url("../parent-child/style.css");)
接下来,我将所有文件(functions.php、Template files、other…我只保留了第一次尝试时的style.css)从父-子主题复制到父-子主题,并且成功了,但我担心来自函数的代码。php将被加载两次,因此会减慢我的网站速度,甚至在某个时候崩溃。
处理这个问题的正确方法是什么
谢谢,
拉迪
最合适的回答,由SO网友:Dan Knauss 整理而成
《创世纪》(以及其他类似的作品)一直存在一个问题,即在如何应对其儿童主题的更新方面缺乏共识。一个简单的传统答案是,你应该很少或永远不要更新它们,因为这可能是一个非常耗时的过程,以避免破坏东西。StudioPress不再自动更新子主题,因此您必须尽力跟踪更新,获取更新,并将更改合并到现有子主题中。如果您通过git回购来实现这一点,那么您就可以非常简单、很好地自动化和管理它。但即使你这样做了,为什么要把事情变得比必要的更困难呢?
我的建议:
不要试图a grandchild theme. 没有人建议这样做不要对Genesis子主题进行任何更改。变化越少越好,最好为零。然后,您可以无需担心地对其运行更新。
在子主题之外的其他CSS中进行所有自定义。如果您愿意,可以将其添加到定制程序中,只需小心备份或锁定您不想接触的人。
在原始插件或snippets.确实要使用Genesis插件,如Simple Hooks 和Simple Edits.如果您在父/子主题之间切换,您的小部件和自定义设置将不会在它们之间进行切换。为此,您需要使用导入/导出插件。
如果您正在制作自己的创世纪之子:
不要在CSS中使用@import
做use the enqueue method to include styles. 本教程介绍了2017年的核心主题。不复制父主题的functions.php
或模板文件。如果同一个函数加载两次,就会立即抛出一个大错误。
修改父主题的functions.php
在您的孩子中添加其他代码functions.php
. 这在“使用functions.php
“结尾处的节this excellent article. 这也是对coding a child theme 今天