欢迎来到本课程,我们将深入探讨主题的函数文件(functions.php),以及如何利用它来添加你自己的功能。
- 描述 WordPress 主题中 functions.php 文件的作用,
- 决定在开发主题时何时使用插件而非 functions.php 文件,以及
- 列举一些使用 functions.php 文件扩展 WordPress 功能的常见用途。
functions.php 文件
WordPress 主题的 functions.php 文件有什么作用?
通过添加可选的 functions.php 文件(在《初学者 WordPress 开发者学习路径》中介绍过),可以为你的主题添加功能或特性。请务必查看关于《主题结构》的课程。
我们可以选择添加 functions.php 文件,以便利用 WordPress 钩子系统在不修改核心文件的情况下扩展 WordPress。要了解更多关于 WordPress 钩子的信息,可以参考《初学者开发者学习路径》中的相关模块。
与插件类似,你应该始终将代码挂载到钩子上,以便在加载过程的适当时间点执行其功能。例如,你可以通过使用 after_setup_theme 动作钩子和 add_theme_support 函数,在主题被 WordPress 初始化后添加各种主题支持功能。
以下是默认的 Twenty Twenty-Four 主题中包含的 functions.php 文件内容。其中的 register_block_pattern_category 函数为我们注册了页面的模式分类。
请注意,WordPress 核心已经提供了许多模式分类。只是这个特定的模式分类并未提供,因此主题为我们实现了它。当执行 init 钩子时,将运行 Twenty Twenty-Four 模式分类函数。
使用插件
如何判断何时使用插件而不是 functions.php 文件?
既然你可以为主题添加类似插件的功能,那么明智地使用这种能力就很重要。如果你计划分发你的主题,最好将代码放在插件中,而不是依赖 functions.php 文件。这样,如果网站所有者决定更换主题,他们的网站也不会崩溃。
如果你计划将主题提交到 WordPress.org 主题目录,请务必遵循那里的指南。
常见用途
让我们看看使用 functions.php 文件扩展 WordPress 功能的一些常见用途。
对于经典主题,你可以使用 functions.php 文件来添加块主题样式。如果你查看 Twenty Twenty-One 主题,你会看到一个示例,他们为这个经典主题添加了对块样式的主题支持。
// Add support for Block Styles.
add_theme_support( 'wp-block-styles' );
你还可以使用 functions.php 文件加载脚本和样式,我们将在下一节关于包含资源的课程中介绍这一点。不过,要查看示例,你可以参考 Twenty Twenty-Two 主题。
最后,你可以选择使用 functions.php 文件包含其他 PHP 文件。你可以再次参考 Twenty Twenty-Two 主题的示例,你会发现它使用了位于 inc 文件夹中的 block-patterns.php 文件。
// Add block patterns
require get_template_directory() . '/inc/block-patterns.php';
这是通过添加 require、get_template_directory 并拼接文件路径来实现的。
下一步
你可以通过参考 WordPress.org 上的主题手册,了解更多关于添加自定义功能的内容。