如何自定义 WordPress 插件
已发表: 2021-01-15WordPress 插件是改进网站功能的完美工具。 虽然,有时它们不能完全按照您的要求执行。 所以。 开发人员自定义和扩展插件以满足他们的需求是很常见的。
在本文中,我们将介绍如何对网站上的插件进行任何自定义的几种方法。
选择合适的插件进行自定义
您不能 100% 确定您将在安装后修改插件。 但是,如果您正在考虑扩展其功能,那么选择正确的插件是值得研究的。
你应该注意什么:
- 作者正在积极维护好插件;
- 拥有与其利基市场相关的用户群;
- 有修复错误和积极支持的记录;
- 提供您需要的特性和功能。
这些不是唯一的要求。 如果插件有一个钩子库,可以让您更轻松地扩展功能,那将是一个好处。
为什么需要定制?
WordPress 插件是为您的网站添加功能的软件。 通常,插件适用于广泛的平台,大多数WordPress 主题,但它们的功能可能无法满足您的某些特定需求。 这就是为什么您总是可以转向定制并扩展特定软件的功能。
WordPress插件很灵活,可以轻松修改。 定制将节省您的时间,同时您可以继续使用自己喜欢的软件,而不必从头开始构建自己的解决方案。 使用第三方插件的核心功能,并扩展它以满足您的需求。
与插件开发人员合作
对插件输出应用一些更改的最简单方法可能是与插件作者联系。
最大的 WordPress 插件目录是wordpress.org 。 所有开发人员都在那里分享他们的联系信息。 其中一些对评论、建议和合作持开放态度。
如果他们对合作感兴趣,您可以向他们发送包含您建议更改的补丁。 如果这是他们正在考虑添加的内容,您可以期待下一次更新的更改或在此之前获得帮助。
使用自定义挂钩
下一个进行定制的方法是使用钩子。 那些是什么?
钩子呈现一段代码,您可以在特定位置与另一段代码进行交互和修改。
Hooks 是插件如何与 WordPress 核心交互的基础。 Hooks 分为两种类型:Actions 和 Filters。
为了使用其中一个,您需要编写一个回调——一个自定义函数。 之后,将其注册到 WordPress 钩子以获取特定的过滤器或操作。
动作和过滤器有什么区别? 操作添加数据或更改 WordPress 的操作方式。 Actions 的回调函数在 WordPress 执行过程中运行,可以执行一些任务。 操作不会将任何内容返回给调用钩子。
过滤器允许您在 WordPress 执行期间更改数据。 过滤器的回调函数将接受一个变量,修改它,然后返回它。 它们独立工作,从不影响全局变量和输出。
简而言之,动作和钩子之间的主要区别如下:
该操作接受它接收到的信息,执行任务,并且不返回任何内容给调用钩子。 过滤器接受它接收到的信息,修改它,然后返回它。 换句话说:它过滤某些东西并将其传递回钩子以供进一步使用。
您可以在 WordPress 中使用许多钩子。 如果您使用的插件包含自定义钩子,您将能够扩展它。 此外,您可以创建自己的。
让我们看一下使用自定义钩子的例子。
我们将向 WooCommerce 购物车页面添加信用卡徽标。
通过操作“woocommerce_after_cart_totals”,您可以轻松地在购物车总计区域下添加内容。 使用 FontAwesome 图标显示信用卡徽标。 在徽标下,我们可以添加一些文字来指示可以使用哪些信用卡。 您可以自定义内容的外观。

当您需要将内容添加到特定位置时,这些简单的操作非常有用。
一些开发人员不在他们的插件中包含自定义钩子。 在这种情况下,您可以覆盖回调或添加自定义挂钩。
添加自定义挂钩
您可以将更改直接放入插件中,只需添加您需要的自定义挂钩即可。 然后,您需要将其余功能放在单独的插件中。
接下来,您必须联系开发人员并将补丁提交给他们,要求他们包含下一次更新所需的自定义挂钩。 如果您很幸运,并且他们这样做了,您可以升级并确保您的插件能够与他们的插件顺利交互。
如果他们拒绝这样做,您仍然可以通过手动将自定义挂钩修补到每个新版本中来进行升级。
覆盖回调
改变 WordPress 插件功能的另一种方法是覆盖回调。 这种方法有助于改变插件与平台交互的方式。 添加自定义回调时,您正在创建希望在插件中看到的功能。
插件通过注册核心钩子的回调函数与 WordPress 集成。 您可以删除回调并将其替换为您自己的。 在你的回调中,你应该从其他插件调用函数,这样你就可以重新创建你需要的功能。
建议成熟的开发人员使用此选项。
更改插件输出
在某些情况下,最好的选择是更改插件默认输出。
该插件与您的网站无关
有时,插件使用的术语不适合您的网站。 例如,WooCommerce 的术语“产品”可能不完全适合您平台的主题,因此您想要更改它。
您可以通过使用 gettext 过滤器来做到这一点。 您将能够将“产品”一词更改为任何合适的类似术语。
示例:更改文本字符串(将产品更改为订单)
在这里,我们试图将“产品”一词的任何实例更改为“订单”。 'gettext' 和 'gettext' 过滤器用于执行此操作。 $translated 行包含我们要替换的文本(产品)和我们要替换它的文本(订单)。
在特殊情况下更改或添加数据
在 WooCommerce 的示例中,我们可以尝试另一种方法来针对某些特殊情况添加或更改数据。
例如,我们需要向特定类别中的所有产品显示一些信息。 为了不手动将此信息添加到每个产品,我们将添加一个全局更改。
我们应该怎么做? 通过结合 is_product() WooCommerce 函数和 has_term() WordPress 函数,我们将产品定位在特定类别中,这允许我们添加重要信息。
< ?php
有时更改插件的功能可能是一项艰巨的任务,并且可能会犯错误。 常见问题包括在流程开始之前备份您的网站失败,或者更改插件的代码而不将原始代码保存到另一个位置。 幸运的是,大多数错误都可以避免。 首先,您应该始终保存插件的原始代码,以备不时之需。 还要经常保存您对插件所做的更改的副本,同时仍保持原始代码不变。 因此,如果出现任何问题,您可以确保您的工作得到保存。 此外,在自定义 WordPress 插件或编写自己的插件时,最好使用暂存环境。 这将确保您的实时网站的功能不受影响。 插件是使您的 WordPress 网站完美的绝佳工具。 不幸的是,您可能会面临一些限制。 但是,可以通过自定义轻松修改这些限制。 即使是没有经验的开发人员也可以应用上述所有方法。 尝试通过扩展任何插件的功能来改进您的网站。自定义 WordPress 插件时不应该做什么