WordPress 钩子

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 安装的管理后台,进入插件页面,并激活你的新插件。

然后,浏览到你网站的前端,查看任何文章或页面。在这个例子中,我将查看示例页面。

你会看到页面内容现在末尾添加了“感谢阅读!”这段文字。

如果你停用插件,这段文字就会消失。

结论

这是一个简单的例子,展示了如何使用过滤钩子来修改文章的内容。

如果现在这些内容让你感到困惑,不用担心,因为我们将在动作钩子和过滤钩子的课程中更详细地介绍。