问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在WordPress中添加自定义功能/函数的四种方法

创作时间:
作者:
@小白创作中心

在WordPress中添加自定义功能/函数的四种方法

引用
1
来源
1.
https://www.wpdaxue.com/a-guide-to-using-custom-functions-plugins-in-wordpress.html

在WordPress开发中,自定义功能的实现是提升网站功能和用户体验的关键。本文将详细介绍四种在WordPress中添加自定义功能/函数的方法,包括将代码添加到主题的functions.php、编写自定义功能插件、使用代码片段插件以及使用必要插件。每种方法都有其独特的应用场景和优缺点,帮助开发者根据具体需求选择最适合的方案。

作为一名WordPress后端开发人员,在过去的十多年里,我使用了各种方法来调整WordPress以满足不同需求。最常见的一种是编写WordPress自定义功能插件。虽然我将这篇文章主要献给开发人员,但项目经理也能从中了解这些方法如何满足团队需求以及何时以及如何使用它们。

将代码添加到Functions.php

在“旧”时代,当WordPress主要在前端和后端使用PHP时,对站点进行一些更改的最快方法是将代码添加到主题的functions.php中。您仍然可以执行此操作,如果您敢的话,请使用WordPress仪表板中的主题文件编辑器。


通过主题文件编辑器在主题functions.php文件中自定义代码

随着时间的推移,这从我最喜欢的自定义WordPress方式变成了我最不喜欢的方式。主要原因是它functions.php附属于一个主题。如果这不是自定义主题并且有人更新它,我的调整就会消失。解决方案是创建一个子主题,其中包含与父主题相关的更改。

我不再向functions.php文件添加尽可能多的自定义代码的主要原因是,大部分代码都是插件领域,通常向网站添加功能,而不仅仅是主题。还有两种情况我需要将自定义代码写入functions.php:

  1. 该代码与自定义或子主题相关。
  2. 在将它们移动到另一个地方之前测试快速更改,因为functions.php通常很容易访问它。

另外,请记住,这functions.php不是托管许多更改的地方,因为单个文件可能会变得过于复杂。特别是当我的更改中需要多个PHP文件和其他文件类型时,我选择编写一个WordPress自定义功能插件。

编写自定义函数插件

如前所述,我添加到站点的大部分代码实际上是构建或扩展独立于主题的功能。一旦我知道我将向网站添加更多自定义项,我就会启动一个自定义功能插件。它通常带有站点的名称,就像我将WP Mayor称为“WP Mayor自定义功能”插件一样。

命名很重要!首先,它允许其他管理员看到该插件与该站点相关,并且可能仅托管该站点的更改。其次,保持插件文件夹和文件名唯一可以防止您的WordPress站点意外地使用在wordpress.org插件存储库中具有相同slug的插件覆盖它。

创建WordPress自定义功能插件很容易。您所需要的只是wp-content/plugins.但是,您应该首先创建一个新文件夹,因为您通常需要多个文件来构建代码,并且可能需要添加JavaScript和CSS代码文件。按照我们的示例,假设我们现在有了wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php插件文件夹和主文件。

让我们向文件添加一个标头来告诉WordPress我们的插件的用途。虽然“插件名称”足以使其在技术上工作,但让我们看一个更高级的示例:

/**
 * Plugin Name:       WP Mayor Custom Function
 * Plugin URI:        https://wpmayor.com
 * Description:       All the cool features we custom-built for us.
 * Version:           1.0.0
 * Requires at least: 6.2
 * Requires PHP:      8.1
 * Author:            Thomas Maier
 */

这应该已经显示在我们的WordPress仪表板的“插件”下。


我们的自定义功能插件位于插件部分

现在,我们可以疯狂地将实际的PHP代码添加到我们的文件中。

提示:当我无法通过FTP访问站点或者只是懒惰时,我会使用Pluginception插件快速启动一些内容,稍后我可以通过WordPress仪表板中的插件文件编辑器填充代码。

您现在是否应该将特定站点的所有代码放入一个专用的自定义功能插件中?这取决于。当我知道自定义代码用于多个项目时,我将其分离到不同的插件中。同时,我在单个插件中收集专用于特定站点的代码。插件越少,我需要维护的代码存储库就越少。

到目前为止听起来不错吗?嗯,在过去几年管理一家更大的插件公司并对网站进行了一百多次调整时,我注意到这些自定义插件仍然非常以开发人员为中心。因此,让我们在下一节中看看另一种方法。

使用代码片段插件来管理

在我从事大型插件业务的大部分时间里,我负责插件商店的技术方面。我将任何非主题特定的代码放入单个自定义函数插件中。对各个插件和自定义的所有调整,例如将空卡重定向到定价页面、追加销售或黑色星期五优惠,都被记录下来并分布在具有可读名称的各种文件中。

好吧,对于任何有权访问代码的人来说,“已记录”和“可读”。尽管我总是在周围进行调整或回答有关它们的问题,但我觉得这不是处理大多数自定义功能的有效且可持续的方式。随着越来越多的人参与管理商店和网站,我想让他们有机会了解这些调整,而不必在我们的知识库中保留专门的页面来更新。

解决方案是安装一个WordPress自定义功能插件,用于管理WordPress仪表板中的所有或大部分代码片段。我个人最喜欢的是免费的代码片段插件,但也有其他插件。

对于代码片段,仪表板中有一个包含所有代码片段的专用菜单项。现在,任何具有管理员访问权限的人都可以看到这些调整。我为每个片段使用描述性名称,使用注释字段对其进行深入描述,并为更改组分配标签。


自定义代码片段的列表

我的标签通常是调整的插件或主题的名称以及涉及的页面部分,例如“WooCommerce”和“Checkout”。


此示例显示了一个自定义代码,该代码在帖子下方显示上次更新的日期

如果你选择了好的名字和好的结构,任何人都应该能够找到并理解调整。包括我自己。我什至在我的个人网站上也使用这种方法,因为它提供了很多舒适感。使用自定义函数插件对于您只临时需要的代码片段特别有用,例如一些只需要偶尔运行一次的清理代码或一些面向前端的操作(例如启用促销)。

这安全吗?默认情况下,WordPress允许任何具有“管理员”角色的人在后端编辑插件和主题文件。使用自定义代码插件与此没有什么不同。因此,防御性的、只给每个人所需的角色的旧规则仍然适用。开发人员可能想知道,通过插件管理代码时,页面请求上的一些非常早期的挂钩不可用,因为插件本身需要首先加载。如果您需要在任何其他插件之前加载自定义代码,请查看下面的必须使用的插件(MU Plugins)选项。

使用必要插件来自定义WordPress功能

所谓“必要”插件是插件中的一个特殊品种。由于它们在任何其他“正常”插件之前执行,因此我使用它们来打开或关闭给定页面的特定插件。您可以使用此类代码来加速伪API或对admin-ajax.php.必要插件的另一个特点是它们默认启用,没有人可以通过WordPress仪表板禁用或更改它们。这使得它们成为甚至管理员用户都无法访问的基本代码的理想选择。

创建必要插件

必要插件托管在文件夹中wp-content/mu-plugins.新安装的WordPress中不存在此文件夹。不过,一些插件或托管公司可能会在此处动态添加内容。要在mu-plugin文件夹中添加新插件,您必须在计算机上使用我在上面向您展示的自定义插件的插件文件头创建一个PHP文件。这次,选择唯一的名称并不重要,因为必须使用的插件不会自动更新。

一旦您对新的自定义功能插件感到满意,请通过FTP将其手动上传到该wp-content/mu-plugins文件夹。mu-plugins如果该文件夹不存在,则创建该文件夹。虽然您无法通过WordPress管理面板更改必要插件,但您可以在插件>强制使用下看到它们。


必要插件在插件部分有自己的专用选项卡

理想情况下,必要插件是单文件插件。尽管您可以在主PHP文件中引用其他文件,但WordPress无法在子文件夹中找到它们。但是,如果您创建一个复杂的Must Use插件,请考虑将主要代码移至常规插件中,并使用必要插件仅在所有其他插件之前加载运行所需的内容。

总结

我们探索了向WordPress添加自定义代码的各种方法,从传统的向主题functions.php文件添加代码、独立插件和WordPress自定义功能插件到使用必要插件(MU Plugins)。每种方法都有自己的优点和潜在缺点,适合不同的需求和场景,具体取决于更改的类型以及谁应该有权访问它。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号