WordPress 钩子有两种类型:动作钩子和过滤器钩子。通常简称为动作和过滤器。
本视频将重点讲解动作,但关于过滤器钩子的更多信息,请查看过滤器课程。
什么是动作钩子
顾名思义,动作允许你在 WordPress 请求执行过程中的特定时刻执行某些操作。
为了更好地解释这一点,我们来看一个例子。
在开发 WordPress 主题时,可以启用对不同文章格式的支持。
你可以在 WordPress 开发者文档的高级管理部分阅读更多关于文章格式的内容。
文章格式是一种方式,允许有权在 WordPress 网站上创建文章的用户从预定义的格式列表中选择。根据所选的文章格式,可以渲染不同的模板布局,以不同的格式显示文章。
要启用文章格式,文档指出你需要使用 add_theme_support 函数,并建议通过 after_setup_theme 动作钩子来注册。
这个钩子在 wp-settings.php 文件中定义,位于主题加载之后。
do_action( 'after_setup_theme' );
这里的 do_action 函数定义了动作钩子,钩子名称为 after_setup_theme。
我们还可以在开发者参考中这个钩子的参考页面阅读更多关于它的信息。
这里我们看到,这个钩子在每次页面加载时触发,在主题初始化之后,用于执行主题的基本设置、注册和初始化操作。
使用动作钩子
要使用动作,你需要在代码中将一个函数注册到已有的动作钩子上,这个函数被称为回调函数。
要将回调函数注册到动作上,你需要使用 WordPress 的 add_action 函数。
你需要将钩子名称和回调函数的名称作为参数传递给 add_action 函数。
让我们看看在主题的 functions.php 文件中是什么样子。
在本课程中,你将在当前激活的主题中编写一些代码。请注意,这仅用于演示目的。除非你自己开发主题,否则不建议直接编辑现有主题的文件。
在你的代码编辑器中,导航到当前激活主题的 functions.php 文件并打开它。
如果你的主题没有 functions.php 文件,你可以在主题目录的根目录下创建一个。只需确保它命名为 functions.php,并在文件顶部包含 PHP 开始标签。
然后,将以下代码添加到你的 functions.php 文件中,将一个回调函数挂载到 after_setup_theme 动作钩子上。
add_action( 'after_setup_theme', 'wp_learn_setup_theme');
接下来你需要定义回调函数。
为此,使用 PHP 函数语法,并指定你要定义的函数名称。
function wp_learn_setup_theme() {
}
然后在回调函数内部添加 add_theme_support 函数调用。对于这个例子,你可以从文章格式文档中复制代码。
function wp_learn_setup_theme() {
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
}
在你的激活主题中添加这段代码后,如果你现在在 WordPress 仪表盘中创建一篇新文章,你会看到文章编辑器中出现文章格式选择框,你可以选择所需的文章格式。
这里你可以看到你在回调函数中启用的两种文章格式。
从这个例子中你学到,你可以使用动作来执行某些操作,无论是启用某个已有功能,还是在请求执行中添加一些内容。