WordPress 中最常用的开发者功能之一就是它的钩子系统。
钩子让 WordPress 变得如此可扩展,并允许你在 WordPress 的基础上构建任何东西,从博客到在线电商平台。
让我们深入了解什么是钩子、它们如何工作,以及如何在你的 WordPress 主题和插件中使用它们。
什么是钩子?
钩子允许你的主题或插件代码在特定的预定义位置与 WordPress 请求的执行进行交互或修改它。
有两种类型的钩子:动作钩子和过滤钩子。它们通常被称为动作和过滤器。
要理解钩子如何工作,让我们看看钩子在 WordPress 核心中是如何定义的。
钩子如何工作
在 WordPress 前端请求课程中,你了解了 wp-settings.php 文件,以及这个文件如何设置 WordPress 环境。
如果你滚动到这个文件的大约第 704 行,你会看到以下代码行:
do_action( 'init' );
在这里,do_action 函数定义了一个动作钩子,钩子名称为 init。
你可以在 init 钩子文档中阅读更多关于这个钩子的信息。
作为开发者,你可以挂钩到这个动作,并在 init 动作触发时运行你自己的代码。
这本质上就像能够在 wp-settings.php 文件中的那个位置添加你自己的代码,但无需实际修改核心文件。
如何使用钩子
你可以在你的 WordPress 主题和插件中使用钩子,向 WordPress 添加你自己的功能,或修改默认功能。
为了实际演示,让我们创建一个简单的例子,展示如何使用过滤钩子来修改文章的内容。
为此,你将创建一个小的插件。如果你从未使用过插件,不用担心,但请查看插件介绍模块以了解更多信息。
现在,在你的代码编辑器中,浏览到你的 wp-content/plugins 目录,并创建一个名为 wp-learn-hooks.php 的新文件。
然后,将以下代码添加到这个文件中:
<?php
/**
* 插件名称:WP Learn Hooks
* 描述:一个简单的插件,用于演示如何在 WordPress 中使用钩子。
* 版本:1.0
*/
add_filter( 'the_content', 'wp_learn_amend_content' );
function wp_learn_amend_content( $content ) {
return $content . '<p>感谢阅读!</p>';
}
现在,浏览到你本地 WordPress 安装的管理后台,进入插件页面,并激活你的新插件。
然后,浏览到你网站的前端,查看任何文章或页面。在这个例子中,我将查看示例页面。
你会看到页面内容现在末尾添加了“感谢阅读!”这段文字。
如果你停用插件,这段文字就会消失。
结论
这是一个简单的例子,展示了如何使用过滤钩子来修改文章的内容。
如果现在这些内容让你感到困惑,不用担心,因为我们将在动作钩子和过滤钩子的课程中更详细地介绍。