WordPress插件开发入门基础教程

在本基础教程中,我们将了解如何开始插件开发,带您完成创建第一个插件的过程。

插件是WordPress如此多功能且用户友好的平台的重要原因。它们使任何用户都可以通过单击按钮快速向其站点添加新代码和功能。但是,如果您不想满足于现有插件,而是自己制作插件怎么办?

创建插件并不是您可能担心的复杂过程。只需一点时间和精力,几乎任何用户都可以从头开始创建插件。只要您了解插件如何连接到WordPress的核心(我们将对此进行解释),构建您自己的插件就会是一个有趣且具有挑战性的项目。

为什么开发WordPress插件

简单来说,插件是为您的WordPress网站添加新功能的软件。他们“挂钩”到 WordPress 平台的核心,并以数千种不同的方式对其进行扩展。

WordPress插件目录

使用插件可为您提供几乎无限的自定义可能性。如果您想将某个功能添加到您的站点,您可以搜索包含数千个选项的插件目录

如果您找不到可以满足您需求的插件,或者您觉得现有选项不太适合您的网站,您可能需要考虑创建自己的插件。为此,您首先需要了解插件如何与WordPress交互。

插件如何工作:钩子、动作和过滤器

开始插件开发最困难的部分是学习所有相关术语。出于这个原因,我们现在将解释一些最重要和最常用的术语。

您将遇到的最重要的概念之一是钩子。挂钩是连接点,您可以在其中将插件附加到WordPress核心代码。基本上,钩子决定了插件将在站点上何时何地使用。

一个基本的例子是wp_loaded钩子,它在整个WordPress站点加载时触发。如果插件具有仅在达到该状态时才需要运行的功能,您可能希望将其连接到此钩子。

钩子有两种变体——动作过滤器。两者的基本区别可以归纳如下:

当然,还有更多。如果您想完全理解它们,我们建议您阅读操作和过滤器的工作原理

创建插件之前要考虑的事项

WordPress插件开发手册

WordPress提供创建插件时要遵循的最佳实践列表

在开始创建插件之前,您需要查看WordPress推荐的最佳实践。遵守这些准则将帮助您为插件打下坚实的基础。它还将确保与其他插件和主题的兼容性,如果您想共享插件,则更容易。

首先,您应该考虑如何命名插件、变量和函数。这很重要,因为您希望避免创建与其他插件使用的名称相匹配的名称。最好的策略是为您定义的每个变量和函数添加一个唯一的前缀。

接下来,您需要确保您的插件是安全的。这是一个很大但很重要的话题。我们建议您通读插件手册以获取有关如何确保代码安全的更多信息。未正确保护的插件在任何站点上都可能带来巨大风险,因此请不要忽视这一方面。

您还需要考虑如何构建插件。它应该包含多少个文件,您想将其保存在一个文件夹中还是将其分散到多个文件夹中?提前考虑这一点将为您提供一个可靠的框架来使用,并使其他开发人员更容易理解您的插件是如何工作的。

最后,遵守WordPress的编码标准很重要。这些是由 WordPress 社区创建的,将帮助您避免常见的编码错误。它们还将使您的代码易于其他 WordPress 用户和开发人员理解。

如何创建WordPress插件

到现在为止,您应该已经做好了将脚趾浸入插件开发领域的准备。因此,事不宜迟,让我们开始吧!这些步骤将引导您完成创建第一个插件的过程。

Step 1:设置临时站点

首先,如果您还没有临时站点,则需要创建一个临时站点。临时站点,也称为开发环境,是不向公众开放且仅用于开发目的的网站。

临时站点使您能够开发插件并对其进行测试,而不会影响您的实时站点。您永远不应该使用实时站点进行开发,因为您可能会破坏站点或使其易受攻击。您的登台环境可以是您自己机器上的本地 WordPress 安装,也可以是私人 WordPress 站点。

我们已经编写了有关搭建本地环境创建临时站点的教程,因此我们不会在此处再次展开详细介绍。

Step 2:新建插件文件

准备好临时站点后,就可以开始工作了。您需要做的第一件事是创建您的插件所在的文件夹。所有插件都添加到同一位置,即名为/wp-content/plugins/ 的目录

现在导航到此位置,然后创建一个新文件夹,为其指定一个与您的插件匹配的名称。例如,如果您的插件将被称为“我的第一个插件”,则将文件夹命名为my-first-plugin是有意义的。

然后,您应该将一个新的PHP文件添加到该文件夹​​中,并具有相同的名称(例如:my-first-plugin.php)。您可以使用任何文本编辑软件(例如TextEdit或记事本)来执行此操作。在文件仍然打开的情况下,输入以下信息:

<?php
/**
* Plugin Name: My First Plugin
* Plugin URI: https://www.mywebsite.com/
* Description: The first plugin I have created.
* Version: 1.0
* Author: Your Name
* Author URI: http://yourwebsite.com/
**/

正如您可能知道的那样,这是WordPress将与您的插件一起显示的元信息。用正确的详细信息替换占位符并保存文件。

此时,您可以打开站点的管理区域并单击Plugins。您会注意到您的新插件已添加到列表中。

WP插件安装列表

显然,您尚未添加任何功能,因此该插件实际上不会执行任何操作。但是,您仍然可以启用它。

您还应该添加一个自述文件到您的插件。如果您打算与其他人共享文件,您将需要它,因为它决定了目录中插件页面的内容。您的文件符合WordPress 标准也很重要。

和以前一样,只要使用文件名readme.txt保存它,就可以使用任何文本编辑器来执行此操作。您还可以使用插件自述文件生成器快速创建此文件。当您使用任一方法创建自述文件时,请将其保存到您的插件文件夹中。

Step 3:添加您的代码

是时候为您的插件添加功能了;这就是你的创造力大放异彩的地方!除了您的想象力和编码能力之外,此时您可以做的事情真的没有限制。

现在,让我们创建一个包含单个函数的简单插件。

我们的插件将更改用户在您的网站上尝试登录失败时显示的默认错误消息。默认情况下,此消息会告诉用户尝试被拒绝的原因。

WP登录报错信息

您的插件将包含一个用通用内容替换此消息的函数。在您选择的编辑器中打开my-first-plugin.php文件,并在标题信息后添加以下代码

function wb_no_wordpress_errors(){
return 'Something went wrong!';
}
add_filter( 'login_errors', 'wb_no_wordpress_erors' );

这是一个非常简单的例子,但让我们分解它。

首先,我们定义了一个名为wb_no_wordpress_errors的新函数——带有“wb”前缀(对于WBOLT)以确保名称是唯一的。这个函数只做一件事情,那就是返回一个指定的字符串。该字符串是我们想要显示的内容,而不是错误消息。我们已将其设置为“Something went wrong!” 但请随意将其更改为您喜欢的任何内容。

之后,我们使用了一个连接到名为login_errors的钩子的过滤器。当这个特定的钩子触发时——即,当发生登录错误时——过滤器将运行no_wordpress_errors函数。

粘贴代码后,您可以保存文件,插件就可以运行了。正如我们提到的,这只是一个基本的例子。随意创建一些全新的东西,甚至扩展我们的功能。

Step 4:测试插件

在向插件添加一些代码后,您需要对其进行测试以确保其正常工作。这通常很容易做到,尽管测试方法将取决于您添加的功能。

让我们继续上面的例子。注销WordPress管理区域并访问临时站点的/wp-login/页面。然后,尝试使用一些故意不正确的凭据登录。如果您的插件成功,您将看到您指定的消息。

但是,如果您使用我们提供的代码并且没有做任何改动,您会发现该插件没有工作。事实上,您很可能会看到根本没有出现任何错误消息。

插件开发测试

这是因为我们实际上在代码中犯了一个故意错误,您必须在插件工作之前更正这些错误(抱歉,但我们希望您也体验测试插件)。

返回到您的my-first-plugin.php文件。您可能已经在这里发现了错误。在最后一行中,最后一个函数名拼写错误。您可以改用此版本的行来解决此问题:

add_filter( 'login_errors', 'wb_no_wordpress_errors' );

您现在可以保存文件并重试。这一次,当您尝试使用不正确的凭据登录时,您应该会看到自定义消息。

插件报错信息示例

现在,您确定您的插件工作正常!

Step 5:分享插件

此时,您的插件已准备好在任何 WordPress 站点上安装和激活。最简单的方法是将my-first-plugin文件夹压缩为zip文件。然后,您可以使用此zip文件在您的实时站点上安装插件

您可能还希望在外部托管插件,以便其他人下载、测试和使用它。最常见的主机是 WordPress 插件目录。如果你想在那里添加你的插件,你需要提交它。请记住,您的插件必须遵守某些限制

另一种选择是将您的插件上传到不同的主机上,例如GitHub。这需要您为插件创建一个存储库,然后您可以上传它。更多使用GitHub的信息可以参考官方文档

小结

通过创建自己的插件,您可以对自己的WordPress网站进行前所未有的控制。插件可用于自定义您想要的任何特性或功能。如果您花时间学习基础知识,那么制作您的第一个插件应该不会那么困难——对于业余爱好者和崭露头角的专业人士来说都是如此。

虽然功夫不负有心人,但还是要说的是,无论是开发主题还是插件,你都需要熟练地掌握后端和前端开发知识。

评论留言