搜索
首页CMS教程WordPressWordPress插件开发

WordPress插件开发

如果您曾经使用WordPress快速构建一个网站,那么您很可能会使用提供的众多插件之一来扩展此流行的博客软件的功能。插件是使WordPress如此吸引人的众多内容之一。如果您需要图像库或联系表格,则可能已经可以下载并使用了一个插件。但是,有时候您找不到现有插件所需的东西。本文将向您展示如何通过引导您浏览一个示例来使用侧边栏中的小部件显示一些文本来创建自己的WordPress插件。

钥匙要点

    在无法找到满足其需求的现有插件时,可以创建
  • WordPress插件,该插件扩展了博客软件的功能。创建过程涉及在WP-Content/插件目录中创建一个新的子目录,并在PHP文件注释中提供描述符以识别插件。
  • WordPress提供了一个可以扩展以创建自定义小部件的WP_Widget类。 WP_WIDGET类具有应覆盖的四种方法:__construct(),form(),update()和widget()。这些方法初始化了小部件,显示用于自定义的表单,更新小部件属性,并分别在博客上显示小部件。
  • >
  • 创建WordPress插件时,遵循最佳实践,例如使用适当的命名约定,通过验证和消毒用户输入来确保安全,并使插件可翻译以吸引更多受众。可以通过遵守WordPress编码标准并使用不同的主题来测试插件来实现与所有主题的兼容性。
  • 调试WordPress插件涉及使用内置的调试系统或带有调试器的PHP IDE。确保插件的安全性涉及验证和消毒用户输入,使用NONCES验证请求源,设置正确的文件权限以及使用WordPress API函数进行数据操作。定期更新和测试可以帮助识别潜在的安全漏洞。

主插件文件

从WordPress安装目录中的WP-CONTENT/插件目录自动检测插件。创建新插件时,您应该在那里创建一个新的子目录。子目录的名称可以是您想要的任何东西;一个明智的选择是将其称为插件的名称。尽量避免使用诸如“ textwidget”或“ shoppingcart”之类的通用名称,因为它可能已经与另一个插件一起使用,如果您希望将其分发给WordPress的其他用户,则会引起问题。在此示例中,创建一个名为phpmaster_examplewidget的子目录。 WordPress检测插件是否可以从PHP文件的注释中的描述符中获得。描述符必须提供有关插件的基本信息,谁创建了该插件以及其许可信息。这就是WordPress用来识别存在插件并准备激活的插件。此示例插件将在您新创建的phpmaster_examplewidget目录中放置在顶部的定义。文件的名称也是任意的,但建议提供一个含义名称。此示例将调用文件widget_init.php。
<span><span><?php </span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span></span>
这是您将为WordPress创建的任何插件所需的结构。现在,当您登录并查看WordPress中的插件管理屏幕时,您会看到新的插件已准备就绪。

WordPress插件开发

您可以在此处显示在“评论”部分中输入的所有信息。如果愿意,您可以立即激活它,但是您仍然需要添加一些功能,然后才能执行任何功能。 现在,具有此定义的文件被认为是与插件关联的任何代码的起点。定义注释后出现的代码将执行,使您有机会初始化插件及其功能。

WordPress小部件

WordPress提供了一个类,您可以扩展名为wp_widget。当您扩展它时,您自己的小部件将用于您主题提供的任何侧边栏。 WordPress带有许多默认小部件,例如“最近的帖子”和“档案”,它们扩展了wp_widget。 WP_Widget类提供了四种应覆盖的方法:
  • __ construct() - 调用父构建器并初始化任何类变量
  • form() - 在管理员视图中显示小部件的表单以自定义窗口小部件的属性
  • >
  • update() - 更新admin View 中表单中指定的小部件属性
  • widget() - 在博客上显示小部件

构造函数

构造函数就像您可能编写的任何其他构造函数一样。重要的是要记住的是调用可以进行三个参数的父构建器:小部件的标识符,小部件的友好名称(这将显示为admin Widget屏幕中的窗口小部件的标题)和一个数组详细说明小部件的属性(仅需要“描述”值)。
<span><span><?php </span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span></span>
有了基本的小部件结构,您将需要注册小部件,并确保在所有其他小部件都在初始化的时候完成此操作。注册小部件是通过寄存器_widget()函数完成的,该函数获取一个参数,即扩展WP_Widget的类的名称。必须在适当的时间调用此注册小部件的调用,因此您要使用的特定WordPress挂钩称为“ widgets_init”。要将注册小部件注册的挂钩关联,您使用add_action()将钩子的名称作为第一个参数,而函数则作为第二个参数。 (第二个参数可以是函数的字符串名称或闭合。)该代码应直接放在widget_init.php中创建的插件的描述下。
<span><span><?php </span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span></span>
现在已经注册并初始化了它,您将可以看到可用于使用的小部件。

form()方法

此处的示例小部件应该让您输入一个标题和一些文本,在博客上查看时要显示一些文本,因此,为了能够修改小部件的这两个方面,您需要创建一个表单以提示这些值。 form()方法在小部件管理屏幕中使用,以显示字段,您以后可以使用该字段来更改站点本身上窗口小部件的功能。该方法采用一个参数,一个与小部件关联的变量的$实例数组。提交表单后,小部件将调用Update()方法,该方法允许您在$实例中更新具有新值的字段。后来,将调用widget(),并将使用$实例显示值。
<span><span><?php </span></span><span><span>add_action("widgets_init",
</span></span><span>    <span>function () { register_widget("TextWidget"); });
</span></span><span><span>?></span></span></span>
您使用wp_widget’s get_field_id()方法和get_field_name()方法分别为表单字段创建ID和名称。 WordPress将为您生成唯一标识符,以免与使用中的其他小部件发生冲突,并且在提交表单时,值将更新相关的$实例数组项目。您可以使用传递的$实例参数在设置值的情况下填充表单字段。 这就是Admin视图中表格的样子:

WordPress插件开发

父元素本身,保存按钮以及删除和关闭链接是通过WordPress自动为您生成的,因此无需明确编码它们。表单将发布变量并调用Update()方法,以便可以将新值插入$实例。

update()方法

更新() 在小部件使用之前,让您有机会验证和消毒实例变量。在这里,您可以根据旧值做出决策,并相应地更新新值。 update()必须返回包含您在显示小部件时期望使用的项目的数组。 WordPress将两个参数传递给了它,一个带有新实例值的数组和一个带有原始实例值的数组。
<span><span><?php </span></span><span><span>/* 
</span></span><span><span>Plugin Name: Simple Text Plugin
</span></span><span><span>Plugin URI: http://www.example.com/textwidget
</span></span><span><span>Description: An example plugin to demonstrate the basics of putting together a plugin in WordPress
</span></span><span><span>Version: 0.1 
</span></span><span><span>Author: Tim Smith 
</span></span><span><span>Author URI: http://www.example.com
</span></span><span><span>License: GPL2 
</span></span><span><span>
</span></span><span><span>    Copyright 2011  Tim Smith
</span></span><span><span>
</span></span><span><span>    This program is free software; you can redistribute it and/or
</span></span><span><span>    modify it under the terms of the GNU General Public License,
</span></span><span><span>    version 2, as published by the Free Software Foundation. 
</span></span><span><span>
</span></span><span><span>    This program is distributed in the hope that it will be useful,
</span></span><span><span>    but WITHOUT ANY WARRANTY; without even the implied warranty of 
</span></span><span><span>    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
</span></span><span><span>    GNU General Public License for more details. 
</span></span><span><span>
</span></span><span><span>    You should have received a copy of the GNU General Public License 
</span></span><span><span>    along with this program; if not, write to the Free Software 
</span></span><span><span>    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
</span></span><span><span>    02110-1301  USA 
</span></span><span><span>*/</span></span></span>
WordPress将为您持续这些值,因此无需实现该功能。

> widget()方法

widget()方法用于在博客上的侧边栏中出现在小部件中的内容。该方法的输出将渲染博客页面。 WordPress通过widget()方法两个参数:第一个是$ args,它是一个数组详细信息有关小部件的信息,第二个是$实例,您可以用它来获取与窗口小部件相关的数据的输出。 $ args确实不会影响这个示例,所以我不会参与其中;只要记住$实例是第二个参数。
<span><span><?php </span></span><span><span>class TextWidget extends WP_Widget
</span></span><span><span>{
</span></span><span>    <span>public function __construct() {
</span></span><span>        <span><span>parent::</span>__construct("text_widget", "Simple Text Widget",
</span></span><span>            <span>array("description" => "A simple widget to show how WP Plugins work"));
</span></span><span>    <span>}
</span></span><span><span>}</span></span></span>
这将在网站上产生以下可能的输出:

WordPress插件开发

就是这样!将所有这些放在一起将为您提供一个非常简单的小部件,以在WordPress安装的博客侧显示文本。

摘要

现在,您熟悉WordPress插件的必要基础,以确保WordPress可以检测和激活它,并扩展WP_Widget类以创建自己的小部件。本文中介绍的示例小部件通过管理提供的配置表格演示了该功能自定义小部件的显示。尽管很简单,但它突出了您将使用的基本WP_WIDGET方法,您将很容易地从此示例中继续前进,并为自己的WordPress驱动的站点创建更大的功能。该示例的代码可在phpmaster的GitHub帐户下获得,因此您可以查看整体中的代码。 通过Bioraven / shutterstock 图像

经常询问有关WordPress插件开发的问题

我如何开始开发WordPress插件?

开始开发WordPress插件,您需要对PHP,HTML,CSS和JavaScript有基本的了解。拥有这些技能后,您可以首先在WordPress插件目录中创建一个新文件夹。在您的插件之后命名此文件夹。在此文件夹中,创建一个具有相同名称的PHP文件。该文件将用作插件的主文件。在此文件中,您需要包括一个标题注释,该评论告诉WordPress此处存在一个插件。设置基本结构后,您可以开始编写插件的功能。

WordPress插件开发的最佳实践是什么?> WordPress插件开发的一些最佳实践包括:使用适当的命名约定,以避免使用WordPress挂钩和过滤器在可能可以翻译以吸引更多的听众。保持代码清洁且征用良好以供将来参考和更新。由于可用的主题,主题可能具有挑战性。但是,使用挂钩和过滤器来遵守WordPress编码标准,而不是修改核心文件,并使用不同的主题测试插件可以帮助确保兼容性。还建议您为您的插件用户提供明确的文档和支持。

>

我如何调试我的WordPress插件?

>调试您的WordPress插件涉及识别和修复其开发过程中可能出现的任何问题或错误。 WordPress带有一个内置的调试系统,您可以在WP-Config.php文件中启用该系统。通过将wp_debug设置为true,您可以在网站的前端显示PHP错误。此外,使用PHP IDE与调试器一起可以帮助您逐步介绍代码并更有效地找到问题。

>

>我如何确保WordPress插件的安全性?

确保您的安全性确保您的安全性WordPress插件涉及多个步骤。首先,始终验证和消毒用户输入以防止SQL注入攻击。其次,使用Nonces验证请求源。第三,在插件文件中使用适当的文件权限。第四,使用WordPress API函数进行数据操作,而不是自定义SQL查询。最后,定期更新和测试您的插件是否有潜在的安全性漏洞。

>如何使我的WordPress插件友好? t对网站的加载速度产生负面影响,因为这是SEO的关键因素。另外,如果您的插件将内容添加到网站上,请确保它易于通过搜索引擎爬网和索引。如果您的插件涉及图像,请确保添加Alt标签。最后,确保您的插件与流行的SEO插件兼容。

>如何更新WordPress插件?

​​

更新WordPress插件涉及对插件文件进行必要的更改,然后递增版本插件标题评论中的编号。测试更新版本并确保其正常工作后,您可以将其上传到WordPress插件存储库中。如果您的插件托管在WordPress插件存储库上,则将通知用户WordPress仪表板中的更新。

>

>如何使我的WordPress插件用户友好?用户友好型涉及提供清晰详细的文档,包括必要的屏幕截图或视频。另外,请确保您的插件的设置和选项是直观且易于理解的。提供及时且有用的支持也可以极大地增强用户体验。

>如何测试我的WordPress插件?

>测试您的WordPress插件涉及在不同的方案以及不同的主题和插件中检查其功能。您可以将自动测试工具(例如Phpunit)进行单位测试。另外,考虑使用调试工具来确定任何错误或问题。最好在发布插件之前先提供可以提供反馈的Beta测试人员。

>

>如何将我的WordPress插件货币化?您可以提供具有基本功能和具有高级功能的优质版本的免费版本。您还可以为您的免费插件提供付费附加组件。另一个选择是免费提供您的插件,并提供付费支持或自定义开发服务。>

以上是WordPress插件开发的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
wordpress怎么加评论框wordpress怎么加评论框Apr 20, 2025 pm 12:15 PM

在 WordPress 网站上启用评论功能,可以为访客提供参与讨论和分享反馈的平台。为此,请按照以下步骤操作:启用评论:在仪表盘中,导航至“设置”>“讨论”,并选中“允许评论”复选框。创建评论表单:在编辑器中,单击“添加块”并搜索“评论”块,将其添加到内容中。自定义评论表单:通过设置标题、标签、占位符和按钮文本来定制评论块。保存更改:单击“更新”以保存评论框并将其添加到页面或文章中。

wordpress怎么复制子站wordpress怎么复制子站Apr 20, 2025 pm 12:12 PM

如何复制 WordPress 子站?步骤:在主站创建子站。在主站克隆子站。将克隆导入目标位置。更新域名(可选)。分开插件和主题。

wordpress怎么写页头wordpress怎么写页头Apr 20, 2025 pm 12:09 PM

在WordPress中创建自定义页头的步骤如下:编辑主题文件“header.php”。添加您的网站名称和描述。创建导航菜单。添加搜索栏。保存更改并查看您的自定义页头。

wordpress评论怎么显示wordpress评论怎么显示Apr 20, 2025 pm 12:06 PM

WordPress 网站中启用评论功能:1. 登录管理面板,转到 "设置"-"讨论",勾选 "允许评论";2. 选择显示评论的位置;3. 自定义评论表单;4. 管理评论,批准、拒绝或删除;5. 使用 <?php comments_template(); ?> 标签显示评论;6. 启用嵌套评论;7. 调整评论外形;8. 使用插件和验证码防止垃圾评论;9. 鼓励用户使用 Gravatar 头像;10. 创建评论指

wordpress怎么上传源码wordpress怎么上传源码Apr 20, 2025 pm 12:03 PM

可以通过 WordPress 安装 FTP 插件,配置 FTP 连接,然后使用文件管理器上传源码。步骤包括:安装 FTP 插件、配置连接、浏览上传位置、上传文件、检查上传成功。

wordpress代码怎么复制wordpress代码怎么复制Apr 20, 2025 pm 12:00 PM

如何复制 WordPress 代码?从管理界面复制:登录 WordPress 网站,导航到目标位置,选择代码并按 Ctrl C (Windows)/Command C (Mac) 复制代码。从文件复制:使用 SSH 或 FTP 连接到服务器,导航到主题或插件文件,选择代码并按 Ctrl C (Windows)/Command C (Mac) 复制代码。

wordpress出现错误怎么办wordpress出现错误怎么办Apr 20, 2025 am 11:57 AM

WordPress 错误解决指南:500 内部服务器错误:禁用插件或检查服务器错误日志。404 未找到页面:检查 permalink 并确保页面链接正确。白屏死机:增加服务器 PHP 内存限制。数据库连接错误:检查数据库服务器状态和 WordPress 配置。其他技巧:启用调试模式、检查错误日志和寻求支持。预防错误:定期更新 WordPress、仅安装必要插件、定期备份网站和优化网站性能。

wordpress怎么关闭评论wordpress怎么关闭评论Apr 20, 2025 am 11:54 AM

如何在 WordPress 中关闭评论?特定文章或页面:在编辑器中取消选中“讨论”下的“允许评论”。整个网站:在“设置”->“讨论”中取消选中“允许发表评论”。使用插件:安装 Disable Comments 等插件禁用评论。编辑主题文件:通过编辑 comments.php 文件移除评论表单。自定义代码:使用 add_filter() 函数禁用评论。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。