WordPress Functions.php 文件解释:基本指南
已发表: 2020-11-18WordPress functions.php 文件是WordPress 最重要的操作文件之一。 每个 WordPress 网站至少存在两个 functions.php 文件:WordPress 核心中的函数文件和 WordPress 主题中的附加函数文件。 此外,子主题还将有一个 functions.php 文件。
在本指南中,我们将介绍functions.php 文件是什么、WordPressfunctions.php 文件所在的位置、如何编辑它等等。 我们还将提供有关 WordPress 功能的入门。 让我们潜入。
如果您正在阅读本文,很可能您已经安装并运行了基本的 WordPress,或者已经拥有一个 WordPress 网站。 一切似乎都运行良好,然后您想做的事情似乎应该是单击按钮。 然后你在网上找了一个教程,结果你需要直接编辑WordPress的functions文件,或者functions.php文件。
或者,您可能正在构建您的第一个 WordPress 主题,并且对如何编辑函数文件以及 WordPress 主题开发的最佳实践有疑问。 在本文的最后,您应该更好地了解 WordPress functions.php 文件的工作原理以及如何最好地利用它。
什么是 WordPress 中的 Functions.php 文件?
WordPress functions.php 文件是一个强大的操作文件,其中包含使 WordPress 网站正常运行的重要 PHP 函数。WordPress 中的函数文件有两个主要位置:
- 位于您网站主目录中的functions.php文件与WordPress核心文件一起打包
- 位于 WordPress 主题和/或 WordPress 子主题中的functions.php 文件。 您安装的每个 WordPress 主题在 WordPress 安装的根目录中都有自己的名为 functions.php 的文件。
与 WordPress 插件的工作方式非常相似,functions.php 文件的存在只是为了允许用户输入自定义 PHP 代码以在页面上执行。 这可以用于无数的事情,从基本的附加功能(如服务器端计算)到更复杂的项目(如用 PHP 编写的供用户利用的完整程序)。

如果您喜欢尝试各种主题,请记住您需要手动迁移您所做的任何functions.php 更改。 此外,如果没有积极维护,某些主题可能不支持较新版本的 PHP,从而使您的一些旧功能无用。
这就是为什么即使在您决定更改主题之后,正式执行 QA 或简单地测试您网站上的所有内容也很重要。 不要把 WordPress 的消息说你的主题转换成功意味着你的功能都转移了。 这必须手动验证。
WordPress 函数文件位于何处?
每个主题都有自己的functions.php 文件,它可以是福也可以是祸,这取决于您喜欢转换主题的频率和站点的功能。
然而,还有一个我们还没有讨论过的第二个“总体”函数文件! 让我们来看看每个文件的位置以及这两个文件之间的确切区别。
WordPress 核心 Functions.php 文件
顾名思义,WordPress 核心 funtions.php 文件是“head honcho”函数文件。 此函数文件与提供 WordPress 网站基础代码的 WordPress 核心软件捆绑在一起。
在 WordPress 网站的根目录中,您会在wp-includes
文件夹或目录中找到此函数文件。 进入wp-includes
文件夹后,您将找到名为functions.php
的文件。 检查但不要更改此文件的内容。 稍后,您应该注意到其结构与主题的函数文件的结构略有不同。

为什么? 永远不要编辑 WordPress 核心文件有几个很好的理由:
- 每当发布新版本的 WordPress 时,更新都会覆盖您对 WordPress 核心文件所做的自定义或更改。 出于安全原因,运行最新版本的 WordPress 始终是一个好主意,因此您不希望文件自定义阻止您运行最新版本的 WordPress。
- 错误位置的一个空格或额外的分号可能会完全破坏您的 WordPress 网站。 除非您对高级 WordPress 开发有透彻的了解,否则 WordPress 核心文件应该保持不变。
我的 WordPress 主题中的函数文件在哪里?
现在,让我们看看您的主题特定的functions.php
文件。 与核心functions.php
文件不同,该文件是由您(开发人员/网站管理员)编辑的。 这些文件的结构和访问方式使得错误通常不会破坏站点,并且比核心级文件中的错误更容易调试。
为此,您需要访问包含 WordPress 主题的wp-content
文件夹。 选择您对添加功能最感兴趣的任何主题的主文件夹。

在主题的根文件夹中,您应该会看到一个functions.php
文件。 打开这个文件,但不要完全改变内容。 看看这个文件,注意它的内容比核心函数文件少。
WordPress Functions.php 文件示例
为了让您最好地了解一个合适的 WordPress functions.php 文件是什么样的,我们提供了这个“极简”模板。 从本质上讲,这具有 WordPress 运行所需的最低限度的代码。 但是,您不会看到它做太多事情,因为功能尚未填充!
WordPress 函数文件具有“强制”函数,本文稍后将对此进行讨论。 不用多说,这是我们的小functions.php
文件(基于主题)。 这改编自官方的 WordPress 主题功能示例,为了清楚起见,删除了一些次要项目:
如果 ( !isset( $content_width ) )
$content_width = 1000; /* 默认值类型以像素为单位 */
如果(!function_exists('myfirsttheme_setup')):
/**
* 此函数需要将文件中的所有内容注册到此
* 主题的functions.php。
*/
函数 myfirsttheme_setup() {
/**
* 在您的主题/站点中添加对图像的支持
*/
add_theme_support('后缩略图');
/**
* 启用对所有核心 WP 内容的支持
*/
add_theme_support('post-formats', array ('aside', 'gallery', 'quote', 'image', 'video'));
}
万一;
add_action('after_setup_theme', 'myfirsttheme_setup');
你有它! 请记住,大多数主题实际上都会附带一个更完整的函数文件,欢迎您向其中添加更多代码。 我们建议在此文件中进行开发时始终参考 WordPress 开发人员手册。
WordPress Functions.php 文件安全
在您修改生产服务器上的任何这些文件之前,请确保您使用的是像 iThemes Security Pro 这样不错的 WordPress 安全插件,以确保您的数据安全。
像 iThemes Security Pro 这样的插件可以为您的网站添加文件更改检测。 iThemes Security Pro 中的文件更改检测功能将扫描您网站的文件并在您的网站发生更改时提醒您,包括:
- 添加文件– 间谍软件形式的恶意软件可能会添加恶意文件,记录客户输入信用卡信息时的按键操作。
- 删除文件- 某些恶意软件会删除合法文件并将其替换为同名恶意文件。
- 修改文件- 恶意软件将尝试通过将其隐藏在它修改的现有文件中来隐藏其恶意代码。
如何访问 WordPress 中的 Functions.php 文件?
要访问您的函数文件,您需要一些基本信息来执行此过程:
- 您的 sFTP 凭证(只有您的主机可以提供这些凭证,并且可能会在初始电子邮件中发送)
- 您选择的 sFTP 客户端
- 您要访问的文件的位置
一旦您可以访问 sFTP 客户端并使用您的凭据登录到您的服务器,您就可以浏览、查看和编辑 WordPress 站点的文件(前提是您拥有正确的用户权限)。
参考我们上面关于“核心”和基于主题的函数文件的讨论。
WordPress 主题功能说明
因此,既然您已经体验了使用 WordPress 主题功能可以完成的工作,那么您将对其中一些功能的工作方式感兴趣。
虽然您应该访问官方 WordPress 开发指南以查看您可以使用的功能的完整和最新列表,但这里有一个方便的有用主题功能列表以及每个功能的功能。

themename_setup()
– 在此函数中,只需将“themename”替换为您的主题名称。 这包含设置主题的代码。
register_nav_menus()
– 在这个函数中,我们简单地设置自定义导航菜单。 几乎每个实际(非理论)主题都利用了这一点。 否则,每个 WordPress 网站的菜单都会看起来完全一样!
load_theme_textdomain()
– 这是允许本地化的函数。 WordPress 网站本地 SEO 的灵丹妙药,在全国或全球范围内都有广泛的影响,这允许对本地区域和地区进行语言和 SEO 优化。
add_theme_support()
– 可能是最简单的函数,这个函数只是告诉你的主题加载支持各种类型媒体的模块。 这些都是内置的,所以根本不麻烦。 许多不同的东西,从 RSS 提要到视频支持,都可以使用这个功能来实现。
你有你的主要 WordPress主题功能! 但是,我们远未完成检查可以在 WordPress 中使用的功能。 接下来,我们将看看我们可以利用的来自 WordPress核心的主要 WordPress 功能,正如我们之前所讨论的。
主要 WordPress 功能的前五名列表
继续,以下是您至少应该了解的一些主要 WordPress 核心功能; 然而,即使是大多数 WordPress 开发者在使用每一个之前都需要参考官方的 WordPress Theme Handbook,主要是由于每个函数的参数的复杂性。
在我们开始之前,请随时在 WordPress 代码参考中查看所有可供您使用的公共功能。
-
activate_plugins()
– 此函数搭载activate_plugin()
函数。 顾名思义,它是激活任何已安装插件的快捷方式。 -
add_menu_page()
– 此功能使您可以非常轻松地将页面添加到您的主题或站点的主菜单。 许多新手用户尝试使用原始 HTML 和 CSS 来做到这一点。 不幸的是,这种方法可能会弄乱整个主题; 最好利用像这样专门为此目的而制作的功能,而不是尝试自己“绕过它”。 -
bloginfo()
– PHP 开发人员可能会注意到,这看起来与 PHP 本身中称为“phpinfo()”的必备函数非常相似。 这是为了模仿该功能,提供打印在页面上的关键信息,以供开发使用,有关您的 WordPress 版本、服务器类型等。 如果您需要快速获取某些特定信息,这非常有用。 -
current_user_can()
– 这个函数是一个“布尔值”,这意味着它将返回一个“真”值或一个“假”值。 这对于调试非常有用,可以调用它来查看您是否可以使用特定功能。 使用相关函数作为参数,您可以检查您是否具有访问任何特定功能的 WordPress 权限。 如果你不这样做,那么你可以在继续之前抓住它并加快你的开发过程。 -
delete_plugins()
– 这个函数的功能正如它的名字所暗示的那样:你输入任何插件的注册名称,运行这个函数将删除插件及其目录。 再次请注意,此操作是永久性的,无法撤消。 在继续执行此功能之前,请确保您拥有正确的名称、您已备份您的站点等。
强制性 WordPress 主题功能
正如我们承诺的那样,我们正在回过头来看看那些“强制性”的 WordPress 主题功能。 这些是每个WordPress 主题必须具备的功能才能正常运行。 请注意,就像大多数形式的编程一样,您可以简单地创建一个文件,其中这些功能被取消,这仍然被认为是有效的。
这是许多博客使用的一种策略,目的是使过程看起来比实际要快得多,并让他们更快地了解他们所谓的“WordPress 基础知识”。 但是,请记住,跳过这些必需的或“强制”的功能不会给您自己或您的网站带来任何好处。 您只是确保某些依赖于这些功能的功能无法按预期工作。 最好在第一次就正确地制作您的网站,而不是需要不断地返回并编辑一些东西来保持所有内容几乎没有在一起!
只需查看 WordPress 主题功能初始设置示例文件,即可查看位于
编辑 Functions.php 文件
所以,既然我们已经了解了 WordPress 函数文件的基础知识,让我们来看看如何编辑这个文件。 那里有各种“最佳实践”,但最好的方法很简单。
首先,您之前需要使用相同的 SFTP 凭据通过相同的 SFTP 客户端。 接下来,您需要找到 PHP 文件并将其下载到本地驱动器。 在本地计算机上使用编辑器(例如开源 Notepad++),首先在本地进行编辑。
理想情况下,您应该在本地安装一些东西,以便您测试此文件。 但是,如果您不这样做,请确保备份原始文件并准备好恢复,以防您的修改没有按照您预期的方式进行。 然后,替换服务器上的该文件,并观察它运行!
作为一个很有可能成为经验丰富的 WordPress 开发人员的人,您应该牢记 WordPress 团队本身推荐的最佳实践。 如果您要添加本质上重要且希望能够重用的功能(类似于面向对象语言中的“对象”,供程序员使用),最好使用此 PHP 创建一个完整的插件您可以在每个站点上轻松安装和卸载。 虽然这听起来更复杂,但实际上多年来它会为您节省时间。
如何将代码添加到 Functions.php?
如果您只是指修改此文件,请查看我们上面的回答。 然而,许多用户问这个问题是因为他们有兴趣将他们自己的附加功能添加到文件中。
再一次,将这样的功能整合到插件中而不是无休止地编辑主题文件被认为是“最佳实践”。 无论如何,我们将在下一小节中查看如何添加您自己的自定义函数!
如何将我自己的自定义函数注入 WordPress?
现在,终于到了您将自己的功能注入 WordPress 的时候了! 对于任何开发人员来说,这都是一个重要的里程碑,因此可能需要庆祝一下。 首先,让我们深入了解如何做到这一点。
虽然它总是最好的自定义代码添加到一个插件,你以后释放,在最起码,不要在您的实际网站,除非你想在你的手中灾难编辑功能! 在编辑主题的functions.php 文件之前,请务必确保对站点进行完整备份。
- 1. 利用免费插件添加功能,例如本教程将使用的“我的自定义功能”。
2. 安装插件后,转到“外观”,然后转到“自定义功能”,您将通过这个新插件看到现有的自定义功能。
3. 您可以为此添加一个非常简单的 PHP 函数。 例如,向下滚动到文本输入框的底部,您可以打印出“Hello, world!”。 带有以下文字:
函数 hello_world() { echo "你好,世界!"; }
4. 请注意,这只是标准的 PHP; 没有一个“WordPress 框架”或类似的东西会从根本上改变语法,这对现有的 PHP 开发人员来说是个好消息。
5. 最后一个快速提示! 当您正在更新主题和站点的功能时, wp-config.php
有一个文件。 它位于主题的根目录中,您需要通过 SFTP 客户端在您喜欢的文本编辑器中打开它。
找到一行写着define('WP_DEBUG', false);
. 只需将其更改为define('WP_DEBUG', true);
. 请注意,完成开发后,您必须将其改回FALSE
。
如何使用 Functions.php 向页眉和页脚添加脚本?
页眉和页脚脚本通常用于广告目的和其他跟踪目的。 这些可能需要插入到每个页面上,或者只插入到某些目标页面上。 无论哪种方式,除非您是经验丰富的 WordPress 用户,否则直接编辑该 PHP 文件都不是可行的方法。
再一次,我们需要在开始之前添加一个小插件。 这一次,该插件称为插入页眉和页脚插件。
将此添加到您的主题或站点后,您将能够通过“设置”然后“插入页眉或页脚”访问编辑功能。 您应该看到一个用于页眉脚本的框和一个用于页脚脚本的框。 澄清一下,这个插件希望你输入 JavaScript,而不是PHP,所以在继续之前确保你的脚本格式正确,因为这个插件不会给你错误信息; 您放入这些框中的任何内容都将作为 JavaScript 放入您的页面!
您需要准备好要添加的脚本并将其粘贴到框中,然后单击“保存”,该过程就完成了! 一些用户报告说,在客户端清除浏览器缓存和服务器端缓存之前,这些更改是不可见的,因此您可能需要执行此操作才能使更改真正生效。
总结:WordPress Functions.php 文件入门
感谢您花时间阅读我们冗长的(但希望值得!)教程,其中介绍了 WordPress 的 functions.php 文件的工作原理、函数文件的 WordPress 核心版本和该文件的主题版本之间的区别。 我们希望所有这些信息在融入您的日常 WordPress 工作流程和网站管理实践时,可以帮助您成为更好的 WordPress 开发人员!
自 2011 年以来,Kristen 一直在编写教程来帮助 WordPress 用户。您通常可以找到她为 iThemes 博客撰写新文章或为 #WPprosper 开发资源。 工作之余,克里斯汀喜欢写日记(她写了两本书!)、远足和露营、烹饪以及与家人一起进行日常冒险,希望过上更现代的生活。
