WordPress主题框架Genesis的工作原理可能会让很多人感到困惑不解,这导致开发者在开始用Genesis框架时可能会一脸蒙逼,无所适从。
在开发传统的主题时,如果想自定义修改日志页面,可能首先就去会去找single.php
,page.php
或index.php
这个几个文件,然后先把主要部分的代码复制到新文件中去。但是在Genesis框架中,类似其他主题中这些文件并一定都存在,即使存在,里面也只包含一行代码,比如:
在子主题中,可能只有一个 style.css
和一个functions.php
文件。functions.php
中可能也只有一行代码,用一点代码就能让主题的外观和感觉产生很大变化,对开发人员来说也很容易维护和修改。
通过Genesis框架能更高效的编写代码,不过你必须得清楚地理解一些基本概念才行。所以,我希望能通过这个系列教程,来帮助你用Genesis框架快速开发主题或修改子主题。
Gesesis是一个主题框架,你可以把它想象成乐高积木或其他类似玩具。它有一个可以用来组装各种零件的平台,这些零件都可以拆卸或移动。有些零件只能安装在特定的地方,而有些零件几乎可以安装到任何位置。
既然要使用Genesis,那么基础平台就是不能替换的了,所以让我们来了解一下这个平台。
这是framework.php
文件,是3个最基本的最不能更动的文件之一。实际上,不光是这个文件,所有Genesis核心代码文件都不要动,不要编辑。所有的开发工作都应该在子主题内进行,Genesis核心代码的任何改动都会在升级时被自动覆盖。
所有一切都是从genesis()
函数开始的。genesis()
函数几乎在每个标准模板文件中都会调用。这个函数负责输出本该写在模板文件里的代码。在顶部和底部应该是两个比较眼熟的函数get_header()
和 get_footer()
, 它们会加载 header.php
文件和footer.php
文件。这两个也是不能修改的文件,它们构成了Genesis框架的核心平台。
在 header 和 footer 之间是 html 代码的封装代码和通过 do_action()
函数指明的“钩子”。do_action()
函数的作用是用“钩子(hook)”把需要执行的动作函数(action)“勾入”到Wordpress中,用来执动作函数中的代码。
这个文件中有7个“钩子”,分别会把不同的动作函数“勾入”wordpress中。我将在稍后解释什么是动作函数,现在让我们先简单的总体看一下Genesis里典型的“钩子”的结构和加载过程。
以下是“钩子”加载顺序的简化版,最开始的就是加载框架自身的钩子:
Genesis Visual Hook Guide
在这里也可以看到Genesis的钩子的总体结构 的在线演示 https://genesistutorials.com/visual-hook-guide/
太多了,各种”钩子”。每个“钩子”都可以将其他函数“勾入”进来以便添加一些功能。只需几行代码就可以移动网站的各个部分。动作函数将在下次再讲。接下来,我还会讲解如何阅读Genesis的代码,以便快速定位到需要复制到子主题的部分。
如果你现在看不太明白也不要担心,本系列会一步步地把Genesis框架解释清楚,本次基础教程也将让你更容易理解下次的内容。
原文地址:https://designsbynickthegeek.com/tutorials/genesis-explained-the-framework
作者 Nick Croft 是 Genesis 非常早期的贡献者和核心开发者,写过不少Genesis插件,也是一个全职的Genesis自由顾问。教程还是挺权威的,也是Genesis官方推荐过的。作者也把文章整理成书出版了,在Amazon上卖的,最新版本更新到2018了,一致都是好评。
他博客上的这个系列文章已经很早了,2011年….8年前了,中间有不少东西可能都不准确了,最新版的书我还没有拿到,不知道里面内容的内容相对于博客有多少更新。。。但好在我看了下那本书的目录和博客上的差别不大,就只好一边对照博客文章一边对照代码在看了,如果碰到有些太旧的东西就改一下,不一定会和原文一样,尽量和最新版Genesis的靠拢。
英文原版的,英文好的朋友可以先买来看看