搜索
首页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的插件生态系统如何增强其CMS功能?WordPress的插件生态系统如何增强其CMS功能?May 14, 2025 am 12:20 AM

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超过50,000pluginsallowuserstalostailortheortheortheortheirsiteirsiteforseo,e-Commerce和security.2)pluginScaneCanextendCorefeatures,likeaddingcustostostposttypes.3 bullycanc.3)

WordPress适合电子商务吗?WordPress适合电子商务吗?May 13, 2025 am 12:05 AM

是的,WordPress非常适合做电商。 1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。 2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。 3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显着。

如何在 Yandex 网站管理员工具中添加您的 WordPress 网站如何在 Yandex 网站管理员工具中添加您的 WordPress 网站May 12, 2025 pm 09:06 PM

您想将您的网站连接到Yandex网站管理员工具吗?Google搜索控制台、Bing和Yandex等网站管理员工具可帮助您优化网站、监控流量、管理robots.txt、检查网站错误等。在本文中,我们将分享如何在Yandex网站管理员工具中添加您的WordPress网站来监控您的搜索引擎流量。什么是Yandex?Yandex是一个位于俄罗斯的流行搜索引擎,类似于Google和Bing。您可以在Yandex中优

如何修复 WordPress 中的 HTTP 图片上传错误(简单)如何修复 WordPress 中的 HTTP 图片上传错误(简单)May 12, 2025 pm 09:03 PM

您需要修复WordPress中的HTTP图片上传错误吗?当您在WordPress中创建内容时,此错误可能会特别令人沮丧。当您使用内置WordPress媒体库将图像或其他文件上传到CMS时,通常会发生这种情况。在本文中,我们将向您展示如何轻松修复WordPress中的HTTP图片上传错误。WordPress媒体上传过程中出现HTTP错误的原因是什么?当您尝试使用WordPress媒体上传器将文件上传到Wo

如何修复添加媒体按钮在 WordPress 中不起作用的问题如何修复添加媒体按钮在 WordPress 中不起作用的问题May 12, 2025 pm 09:00 PM

最近,我们的一位读者报告说,他们的WordPress网站上的“添加媒体”按钮突然停止工作。此经典编辑器问题不会显示任何错误或警告,这使用户不知道为什么他们的“添加媒体”按钮不起作用。在本文中,我们将向您展示如何轻松修复WordPress中的“添加媒体”按钮不起作用的问题。是什么导致WordPress“添加媒体”按钮停止工作?如果您仍在使用旧的经典WordPress编辑器,那么“添加媒体”按钮允许您将图像、视频等插入博客文章中。

如何设置、获取和删除 WordPress Cookie(像专业人士一样)如何设置、获取和删除 WordPress Cookie(像专业人士一样)May 12, 2025 pm 08:57 PM

您想了解如何在WordPress网站上使用cookie吗?Cookie是在用户浏览器中存储临时信息的有用工具。您可以使用此信息通过个性化和行为定位来增强用户体验。在本终极指南中,我们将向您展示如何像专业人士一样设置、获取和删除WordPresscookie。注意:这是一个高级教程。它要求您精通HTML、CSS、WordPress网站和PHP。什么是Cookie?Cookie是用户访问网站时创建并存储在用户浏览

如何修复 WordPress 429 请求过多错误如何修复 WordPress 429 请求过多错误May 12, 2025 pm 08:54 PM

您是否在WordPress网站上看到“429请求过多”错误?此错误消息意味着用户向您网站的服务器发送了太多HTTP请求。此错误可能会非常令人沮丧,因为很难找出导致该错误的原因。在本文中,我们将向您展示如何轻松修复“WordPress429TooManyRequests”错误。是什么原因导致WordPress429请求过多错误?“429TooManyRequests”错误的最常见原因是用户、机器人或脚本尝试向网站

WordPress作为大型网站的CMS有多可扩展?WordPress作为大型网站的CMS有多可扩展?May 12, 2025 am 12:08 AM

WordPressCanHandLeLArgeWebsitesWithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)优化YourdataBaseRegularly.3)actizeyourdatabaseregularly.3)ackdntododistibutecontent.4))

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

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

热门文章

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

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