目录
钥匙要点
主插件文件
WordPress小部件
构造函数
form()方法
update()方法
> widget()方法
摘要
经常询问有关WordPress插件开发的问题
我如何开始开发WordPress插件?
确保您的安全性确保您的安全性WordPress插件涉及多个步骤。首先,始终验证和消毒用户输入以防止SQL注入攻击。其次,使用Nonces验证请求源。第三,在插件文件中使用适当的文件权限。第四,使用WordPress API函数进行数据操作,而不是自定义SQL查询。最后,定期更新和测试您的插件是否有潜在的安全性漏洞。
>如何更新WordPress插件?
>如何使我的WordPress插件用户友好?用户友好型涉及提供清晰详细的文档,包括必要的屏幕截图或视频。另外,请确保您的插件的设置和选项是直观且易于理解的。提供及时且有用的支持也可以极大地增强用户体验。
>测试您的WordPress插件涉及在不同的方案以及不同的主题和插件中检查其功能。您可以将自动测试工具(例如Phpunit)进行单位测试。另外,考虑使用调试工具来确定任何错误或问题。最好在发布插件之前先提供可以提供反馈的Beta测试人员。
首页 CMS教程 &#&按 WordPress插件开发

WordPress插件开发

Feb 21, 2025 am 10:48 AM

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>
登录后复制
登录后复制
登录后复制
这是您将为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>
登录后复制
登录后复制
登录后复制
有了基本的小部件结构,您将需要注册小部件,并确保在所有其他小部件都在初始化的时候完成此操作。注册小部件是通过寄存器_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>
登录后复制
登录后复制
现在已经注册并初始化了它,您将可以看到可用于使用的小部件。

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>
登录后复制
您使用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>
登录后复制
登录后复制
登录后复制
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>
登录后复制
登录后复制
这将在网站上产生以下可能的输出:

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

热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

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何开始WordPress博客:初学者的分步指南 如何开始WordPress博客:初学者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

如何在 WordPress 中获取登录用户信息以获得个性化结果 如何在 WordPress 中获取登录用户信息以获得个性化结果 Apr 19, 2025 pm 11:57 PM

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

如何在父分类的存档页面上显示子分类 如何在父分类的存档页面上显示子分类 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

如何在 WordPress 中按帖子过期日期对帖子进行排序 如何在 WordPress 中按帖子过期日期对帖子进行排序 Apr 19, 2025 pm 11:48 PM

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

对于初学者来说,WordPress容易吗? 对于初学者来说,WordPress容易吗? Apr 03, 2025 am 12:02 AM

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

如何在 WordPress 中显示查询数量和页面加载时间 如何在 WordPress 中显示查询数量和页面加载时间 Apr 19, 2025 pm 11:51 PM

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) 如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) Apr 18, 2025 am 11:27 AM

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

See all articles