插件要求

现在你已经知道什么是插件了,接下来我们来探索创建插件需要什么。

创建你的第一个插件

一个有效的 WordPress 插件最低要求是至少有一个 PHP 文件,即主插件文件,并包含一个开头的 PHP 标签。

在主插件文件内部,第一段代码应该是插件头部信息(Plugin Header),这是一个 PHP 注释块。至少需要包含一个插件名称字段。

要创建你的第一个插件,请导航到 wp-content/plugins 目录,并创建一个名为 example-plugin.php 的 PHP 文件。

cd wp-content/plugins && touch example-plugin.php

在文件内部,确保打开 PHP 标签,这样服务器才能执行 PHP 代码。

<?php

现在,在文件顶部、PHP 开始标签下方添加以下代码。

/**
 * Plugin Name: 示例插件
 */

这就是所谓的插件头部信息,它使用 PHP 注释语法的一种变体——DocBlock 来编写。

要了解更多关于 PHP 注释的内容,请查阅 PHP 手册基本语法部分中的注释页面。

创建好你的第一个插件后,现在可以浏览 WordPress 仪表盘中的“插件”页面,你会看到你的插件已经可用并准备激活。

这个插件目前还没有任何功能,但它已经准备好添加功能了。

WordPress 如何识别和存储已激活的插件

一旦插件被激活,它就会被添加到存储在选项表(options table)中序列化数组里的已激活插件列表中。你可以通过在 phpMyAdmin 中运行以下 SQL 查询来找到这个数组。

SELECT * FROM `wp_options` WHERE `option_name` LIKE 'active_plugins'

注意它如何存储 PHP 文件的文件名。这也被称为插件别名(plugin slug),WordPress 在执行过程中通过它来识别你的插件。

如果你将主插件文件移动到一个目录内,插件别名会发生变化,包含目录名称。

wp-content/plugins 中创建一个名为 example-plugin 的新目录,并将你的插件文件移动到该目录中。

如果你浏览 WordPress 仪表盘中的“插件”页面,你会看到该插件不再处于激活状态,因为别名已经改变了。

你还会注意到“插件”页面顶部有一条警告信息:

插件 example-plugin.php 因错误而被停用:插件文件不存在。

现在激活该插件。

然后返回并查看 wp_options 表中的已激活插件列表,看看新的别名(包含目录名称)是如何被添加到序列化数组中的。

插件头部信息字段

虽然插件名称字段是有效插件的基本要求,但还有额外的字段可以添加到插件头部信息中。

通常建议在插件头部信息中添加描述和版本号。这可以让用户获得更多关于你插件的信息,并且在插件列表中显示效果更好。

/**
 * Plugin Name: 示例插件
 * Description: 这是为 WordPress 开发者路径提供的示例插件。
 * Version: 1.0
 */

你可以在插件开发者手册的头部信息要求页面中查看完整的插件头部信息字段列表。

插件最佳实践

插件手册中还包含一个关于开发插件时常见最佳实践的章节。

其中一个建议是包含一个检查,确保插件代码仅在作为 WordPress 请求的一部分时执行。

if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果直接访问则退出
}

这段代码的作用是检查 ABSPATH 常量是否已定义,这是一个 WordPress 特有的常量。如果未定义,则退出插件的代码执行。

这样,如果有人试图直接在浏览器中浏览主插件文件,插件中的任何 PHP 代码都不会被执行,从而防止安全风险。

你可以在插件开发者手册的最佳实践页面中了解更多关于此建议及其他建议的信息。