如何在 WordPress 中查找、访问和编辑 functions.php

已发表: 2022-08-23

如果您刚刚开始使用 WordPress 开发,您应该熟悉的最重要的文件之一是functions.php文件。 实际上,您可能会在 WordPress 网站上使用三个可能的functions.php文件,每个文件都扮演着不同的角色。 了解这些文件的位置、它们的用途以及修改它们的方式和时间将有助于您解决问题并让您更好地控制站点的功能。

在本文中,我们将介绍您需要了解的有关 WordPress functions.php文件的所有信息。 您将了解functions.php的功能以及如何查找和编辑它。 我们甚至会包含一些有用的代码片段来试用。

您可以使用下面的目录从头开始阅读或跳转到特定部分:

  • WordPress中的functions.php是什么?
  • functions.php文件在哪里?
  • 如何访问functions.php
    • 在 WordPress 管理界面中访问functions.php
    • 通过 FTP 访问functions.php
    • 在您的 cPanel 中访问functions.php
  • 我什么时候应该在 WordPress 中编辑functions.php
  • 如何在 WordPress 中编辑functions.php
    • 在 WordPress 主题文件编辑器中编辑functions.php
    • 使用文本编辑器编辑functions.php
    • 直接在cPanel中编辑functions.php
  • 使用插件向您的 WordPress 网站添加功能
  • 如何保护functions.php免受安全漏洞攻击
  • 我可以在 WordPress 的functions.php中添加什么代码?
  • 常问问题
    • 我需要创建一个子主题来编辑functions.php吗?
    • 如果我无权访问我的 WordPress 仪表板,如何从备份中恢复functions.php
    • 我可以将 JavaScript 添加到我的functions.php文件吗?

WordPress中的functions.php是什么?

在 WordPress 中, functions.php文件是决定站点工作方式的重要代码所在的位置。 实际上,每个 WordPress 网站中至少有两个functions.php文件——一个包含在 WordPress 核心中,一个包含在您的主题中。 如果您使用的是子主题,您的子主题文件夹中还应该有一个functions.php

WordPress 核心中的functions.php文件包含 WordPress 运行所需的重要代码。 您几乎不应该修改 WordPress 核心的functions.php文件中的代码。

您的主题的functions.php文件是您网站的所有主题特定功能所在的位置 - 例如自定义菜单位置、小部件区域、自定义页眉和页脚内容和功能、帖子摘录长度等。

您的主题的functions.php文件的行为方式与 WordPress 插件非常相似。 不同之处在于, functions.php应该用于特定于主题的代码,而插件应该用于即使在切换主题时仍将保留的功能。

functions.php文件在哪里?

我们已经讨论了functions.php文件在WordPress核心和主题文件中的作用,但是你如何找到functions.php文件呢? WordPress中的functions.php在哪里?

您所有的 WordPress 文件都位于您网站的根目录和各种子文件夹中。 您的根目录通常命名为public_htmlwww ,但可能有不同的名称。 如果您不确定在服务器上的何处可以找到 WordPress 安装文件夹,请联系您的网络托管服务商。

一旦你找到了你的 WordPress 文件在你的服务器上的位置,你就可以开始寻找你的functions.php文件了。 我们已经提到, functions.php最多有三个位置:WordPress 核心、您的主题文件夹和您的子主题文件夹。 在本节中,我们将讨论在哪里可以找到每一个。

WordPress核心中的functions.php在哪里?

如果您在 WordPress 核心中寻找functions.php的位置,您可以在 WordPress 安装的wp-includes文件夹中找到它。

在 wp-includes 中找到 functions.php 文件

虽然您永远不应该在 WordPress 核心中编辑functions.php ,但您可能会发现自己出于某种原因需要检查它。 在 WordPress 核心中的functions.php中四处寻找的最可能的情况是,如果您怀疑恶意软件已被注入其中。

甚至在打开functions.php之前,您应该备份您的 WordPress 站点,以防您不小心更改了导致严重错误的文件。 如果您发现functions.php已损坏或被黑客入侵,则您可能有 WordPress 的其他区域受到影响。 最好的办法是简单地用全新安装替换 WordPress,而不是尝试一个一个地删除所有有问题的脚本。

我的 WordPress 主题文件夹中的functions.php在哪里?

您的主题的functions.php文件位于主题文件夹的主目录中: wp-content → Themes → yourtheme

在主题文件夹中找到functions.php文件

WordPress子主题文件夹中的functions.php在哪里?

WordPress 子主题functions.php文件位于子主题文件夹的主目录中: wp-content → Themes → yourtheme-child

找到子主题functions.php文件

如何访问functions.php

知道functions.php的位置只是工作的一半。 现在是如何在 WordPress 中访问functions.php的问题。 虽然 WordPress 核心中的functions.php文件只能通过安全文件传输协议 (SFTP) 或通过 cPanel 访问,但您的主题和子主题functions.php文件也可以在 WordPress 主题文件编辑器中访问。

在 WordPress 主题文件编辑器中访问functions.php

如果您需要访问您的主题或子主题的functions.php文件,您可以直接从 WordPress 主题文件编辑器中进行操作。 在您的 WordPress 仪表板中,转到外观 → 主题文件编辑器

您将被带到编辑主题页面。 在此处,在Select theme to edit旁边的下拉列表中,选择您的主题并单击Select 。 您将在屏幕最右侧的“主题文件”列下看到可编辑的文件列表。 单击functions.php打开文件。

找到functions.php文件

如果您在父主题的functions.php文件中,您会在屏幕底部的“更新文件”按钮上方看到一条警告通知,上面写着“注意:这是您当前父主题中的文件”。

注意:如果您不是主题开发人员,则应在子主题的functions.php文件中进行更改,以避免在将来的主题更新中覆盖您的编辑。

通过 SFTP 访问functions.php

第 1 步:安装 SFTP 客户端。 如果您还没有 SFTP 客户端,则需要下载一个。 有一些很棒的免费和高级选项,包括:

应用系统免费或高级
WinSCP 视窗自由的
Filezilla 视窗、Mac、Linux 免费和高级选项
赛博鸭视窗,Mac 自由的
发送苹果电脑优质的

在此示例中,我们将使用 Filezilla。 其他 SFTP 客户端应该以类似的方式工作。

第 2 步:检索您的 SFTP 凭据。 要通过 SFTP 登录您的服务器,您需要以下详细信息:

  • 主机(您的服务器的 IP 地址或 url)
  • SFTP 用户名
  • 密码
  • 端口号

这些详细信息通常可以在您的主机控制面板中找到。 此信息可能会为您生成,或者您的主机可能会提示您创建 SFTP 用户名和密码。 如果您不知道在哪里可以找到这些凭据或无法弄清楚如何创建它们,请搜索您的房东的帮助文档以获取说明或联系他们的支持团队。

第 3 步:输入您的 SFTP 凭据。

输入您主机的 IP 地址或 url、您的 SFTP 用户名、密码和端口号(通常为 22 或 2222,但有些主机可能使用不同的端口)。

在 Filezilla 中输入 sftp 凭据

注意:如果您的 SFTP 客户端使用首次使用时信任 (TOFU) 身份验证,您可能会收到“主机密钥未知”警报。 如果您打算使用 SFTP 客户端再次访问该站点,请选中“始终信任此主机,将此密钥添加到缓存”。 单击“确定”继续。

filezilla 中的未知主机密钥消息

第 4 步:导航到您网站的根目录。

登录后,您会在屏幕按钮上看到两个文件树——一个在左侧,一个在右侧。 右侧列出了 Web 服务器(远程)上的目录。 左侧列出了您计算机上的目录(本地)。

您的根目录通常位于标有wwwpublic_html的文件夹中,但它可能使用不同的名称。 如果您不确定要查看哪个文件夹,请咨询您的托管服务提供商。 如果您在文件列表顶部附近看到wp-adminwp-contentwp-includes文件夹,您将知道您位于正确的文件夹中。

在 Filezilla 中找到 public_html 文件夹

第 5 步:导航到WordPress 核心、父主题或子主题中的functions.php 。 如果您在 WordPress 核心中寻找functions.php ,您将导航到wp-includes文件夹。

如果您在主题目录中寻找functions.php ,您将导航到wp-content主题yourtheme

要找到您的子主题的 functions.php 文件,请转到wp-content → 主题 → yourtheme-child。

第 6 步:下载functions.php 现在您知道functions.php的位置并已访问它,您可能想要检查或编辑该文件。 在执行此操作之前,您需要下载它。 右键单击您的functions.php文件并选择下载。 您的文件将下载到您的本地计算机。

从 Filezilla 下载 functions.php 文件

在 cPanel 中访问functions.php

如果您的主机使用 cPanel,您可以通过其文件管理器访问functions.php 。 如果您不知道如何在主机的仪表板中找到 cPanel,请联系他们的客户支持寻求帮助。

第 1 步:打开 cPanel 的文件管理器。 进入 cPanel 后,导航到文件部分并单击文件管理器

第 2 步:打开您网站的根文件夹。 根文件夹通常称为wwwpublic_html ,但它可能有另一个名称。 某些主机上的根文件夹命名约定不同,因此如果您不确定要查看哪个文件夹,请咨询您的托管服务提供商。

如果您在文件列表顶部附近看到wp-adminwp-contentwp-includes文件夹,您将知道您位于正确的文件夹中。

第 3 步:查找并下载functions.php WordPress 核心的functions.php文件位于您的wp-includes文件夹中。

您的主题的functions.php文件位于wp-content → 主题 → yourtheme

如果您正在寻找您的子主题的functions.php文件,您可以在wp-content → 主题 → yourtheme-child 中找到它。

找到所需的functions.php文件后,右键单击functions.php并单击Download ,或单击functions.php然后单击顶部菜单中的Download选项。

从 cpanel 下载 functions.php 文件

如果您在保存文件时重命名文件,请确保在重新上传之前将其重新命名为functions.php 。 在您更改和覆盖functions.php之前,请备份您的 WordPress 网站。

我什么时候应该在 WordPress 中编辑functions.php

在我们深入研究如何编辑functions.php之前,我们应该讨论一下是否以及何时应该编辑它。 您可能想在 WordPress 中编辑 PHP 代码的原因有很多,但是将该代码添加到您的functions.php文件中并不总是最好的选择,只应在某些情况下进行,我们将在下面讨论。

何时在 WordPress 核心中编辑functions.php

绝不。 您不应该在 WordPress 核心中编辑functions.php 。 如果您发现它已损坏,您最多可以替换它,但删除或添加代码到 WordPress 核心函数.php 可能会破坏您的网站。 所以,你可以打开它,检查它,如果需要的话,用新的副本替换它,但不要在任何实时网站上乱七八糟。

何时在主题中编辑functions.php

当涉及到主题的functions.php文件时,您可能需要也可能不需要编辑它。 如果您正在创建自己的主题,您肯定会想在functions.php中添加一些自定义代码。 几乎每个主题的functions.php文件中都有代码,这些代码为其提供了一组独特的特性和功能。 除了您的样式表之外,这些功能是使一个主题与另一个主题不同的重要部分。

如果您要向主题的functions.php文件添加代码,该代码不是特定于您的主题并且可以独立于您的主题使用,请考虑将其作为插件。 通过这种方式,您可以跨多个主题使用该功能,甚至可以将其提交到 WordPress.org 插件库,以便其他 WordPress 用户受益。

在创建插件之前,请检查插件库以确保您正在创建的内容不存在。 如果已经存在高质量的解决方案,您可能希望为站点上的不同自定义功能节省开发精力。

何时在您的子主题中编辑functions.php

如果您使用的是开发人员提供的主题,并且想要修改functions.php文件,则应始终使用子主题进行这些更改。 当主题开发人员发布他们的主题的新版本并且您更新到最新版本时,您当前的主题将被新文件覆盖 - 包括functions.php

子主题不受父主题更新的影响,因此如果您在子主题的functions.php文件中进行更改,您将保留所有自定义代码。

在添加代码之前,请考虑使用插件是否是更好的解决方案。 您添加的代码是否特定于您的主题? 编辑您的子主题的functions.php文件。 如果您将来更改主题(例如 Google Analytics 跟踪代码或 Facebook 像素),您要添加的代码是否仍然保留? 使用插件。

如何在 WordPress 中编辑functions.php

您应该始终采取措施保护您的网站,避免在编辑functions.php时可能犯的任何错误。 因此,在您开始进行编辑之前,请备份您的站点并考虑创建一个临时站点以首先对其进行测试。 这样,如果您不小心将一些导致重大问题的代码添加到functions.php中,或者更糟糕的是,您的网站完全崩溃,您的实时站点就不会中断。

现在您已经备份了您的站点,您可以继续编辑您的functions.php文件。

如何在 WordPress 主题文件编辑器中编辑functions.php

在 WordPress 主题文件编辑器中编辑functions.php有点冒险。 如果您使用此工具是因为您无权访问 cPanel 或 SFTP,那么如果您的编辑导致致命错误导致您无法访问 WordPress 仪表板,那么您将处于非常糟糕的境地。

如果您想在主题文件编辑器中编辑functions.php ,请确保您可以直接访问服务器和备份,以便您可以快速恢复备份文件。

您可以在 WordPress 管理面板的外观 → 主题文件编辑器下找到 WordPress 主题文件编辑器。

您将被带到 Edit Themes 屏幕,您应该在其中选择您的子主题,然后从屏幕右侧的 Theme Files 列中选择functions.php文件。

在主题文件编辑器中编辑functions.php文件

如果您选择了父主题,您会在屏幕底部看到一条警告,上面写着“注意:这是您当前父主题中的文件。” 您不想对父主题的functions.php文件进行编辑,因为您的更改将在下次更新主题时被覆盖。

如果您在文件中看到您不理解的功能,WordPress 在更新文件按钮上方包含一个方便的文档查找功能。 单击下拉菜单并搜索您要了解更多信息的函数名称,然后单击查找。 您将被引导至该功能的 WordPress.org 文档。

完成更改后,单击更新文件。 检查您网站的前端和后端,以确保一切仍按预期工作。 如果您遇到致命错误并需要从备份中恢复functions.php ,您可以在 cPanel 中或通过 SFTP 执行此操作。

使用文本编辑器编辑functions.php

编辑functions.php的最佳方式是在您选择的代码编辑软件中。 由于您在本地计算机上编辑离线副本,因此您无需连接到 Internet 即可处理文件。 您还可以更好地控制何时将更改提交到您的实时站点。

您可以随时编辑您的代码,并在您的网站通常获得最少流量的时候上传您的更改。 这样,如果有任何问题,将影响最少的访问者。

第 1 步:在文本编辑器中打开functions.php 。 如果您不熟悉使用文本编辑器,有几个免费选项可供选择。

免费源代码和纯文本编辑器:

应用系统
记事本++ 视窗
原子.io 视窗、Mac、Linux
升华视窗、Mac、Linux
文本编辑
*确保您处于纯文本模式
Mac(默认应用程序)
记事本Windows(默认应用程序)

第 2 步:编辑functions.php并保存到您的本地计算机。 根据您用于编辑functions.php文件的程序,您的显示可能会有所不同。 这是 atom.io 中 PHP 代码的样子:

在 atom.io 中编辑 functions.php

添加或更改您需要的任何信息,然后保存您的文件。

第 3 步:通过 SFTP 或 cPanel 登录您的 Web 服务器。 导航到您的主题或子主题文件夹并找到functions.php文件。

第 4 步:在您的 Web 服务器上更改functions.php的文件名。 如果您编辑的版本包含错误,您不希望覆盖您的原始functions.php文件。 当然,您已经进行了备份,但不必从备份中提取functions.php文件,您将拥有原始文件。

如果出现问题,您希望能够快速恢复functions.php文件,因此将其重命名为“functions-orginal.php”之类的名称将确保原始文件的内容保留在您的服务器上。

重命名functions.php文件

第 5 步:将functions.php从您的本地机器上传到您的网络服务器。 使用 SFTP 或 cPanel,将您的functions.php文件上传到您的主题或子主题的主目录。

第 6 步:访问您的网站以确保其正常运行。 一旦你上传了你的functions.php文件,你应该检查以确保你的网站上一切正常。 访问前端并登录到 WordPress 仪表板,以确保一切都可以访问并正确显示和运行。

第 7 步:删除旧的、重命名的functions.php文件。 一旦您确定您的站点工作正常,您可以删除functions-original.php (或您将其重命名为的任何内容)。 如果您在路上发现问题,您仍然应该从您所做的备份中获得您的functions.php文件。

直接在cPanel中编辑functions.php

如果您没有或不想使用源代码编辑器,您可以直接在 cPanel 中编辑functions.php (如果您的主机使用 cPanel)。 就像在 WordPress 主题文件编辑器中编辑一样,它比在本地机器上工作风险更大。 如果您在编辑时 Internet 连接中断,您可能会丢失所做的更改。 您还冒着可能覆盖原始functions.php文件的风险。

第 1 步:在 cPanel 中找到functions.php 。 在 cPanel 中,单击文件管理器

导航到您的根文件夹(通常是public_htmlwww ,但它可能有不同的名称)。

第 2 步:复制functions.php 在文件管理器主菜单中,单击+ 文件夹以添加新文件夹。 您需要复制您的functions.php文件并将其保存在此处作为备份。

将您的新文件夹命名为易于识别的名称,例如“备份功能”,以便您以后轻松找到它。 单击创建新文件夹

制作functions.php文件的cpanel备份

第 3 步:在您的主题或子主题文件夹中找到functions.php并将其复制到备份文件夹中。 在您的主题或子主题文件夹中,向下滚动到functions.php并右键单击文件名。 选择复制

在 cpanel 中复制 functions.php 文件

将出现一个对话框,要求您输入要将文件复制到的路径。 您当前所在文件夹的路径将被预先填充,因此如果备份文件夹的文件路径与您看到的不同,请输入正确的路径。 单击复制文件

第 4 步:导航回主题或子主题目录中的functions.php 现在您有了备份,您可以回到主题或子主题目录中的functions.php文件并开始编辑。

右键单击functions.php ,然后单击Edit

第 5 步:编辑functions.php 您现在应该在屏幕上看到functions.php文件的内容。 它应该看起来像这样:

cpanel 中的 functions.php 文件示例

添加或更改您需要的任何信息,然后保存您的文件。

使用插件向您的 WordPress 网站添加功能

您可以使用 Code Snippets 之类的插件向您的网站添加功能,而不是直接修改functions.php文件。 如果您需要向您的站点添加大量功能,则很容易忘记您仍然需要哪些功能,哪些不需要。

Code Snippets 提供了一个图形用户界面 (GUI) 来管理您的 PHP 代码块。 您可以添加描述以便了解代码应该做什么,并打开和关闭代码块,就像激活和停用插件一样。

由于您没有对functions.php进行更改,因此将 PHP 函数添加到 WordPress 站点是一种更安全的方法。

如何保护functions.php免受安全漏洞攻击

functions.php文件通常是黑客的目标,因此确保其安全应该是重中之重。 采取以下步骤来帮助您保护您的functions.php文件:

1.安装安全插件

通过使用安全插件,您将在站点的多个区域享受高级保护,免受黑客攻击。

Jetpack Security 是一种廉价的选择,有助于保护您的网站免受恶意攻击。 它包括恶意软件扫描和一键修复、蛮力攻击保护、停机时间监控、活动日志,以便您了解您的网站是否以及何时被黑客入侵,以及通过两因素身份验证 (2FA) 提供的登录保护。

Jetpack 主页消息

Jetpack Security 还会监控您的站点是否有对核心 WordPress 文件、过时或不安全的插件以及其他漏洞的任何更改,以便您可以在黑客发现并利用它们之前捕获它们。

此外,它还提供实时 WordPress 备份,因此如果出现任何问题,即使您无法登录网站,您也可以快速恢复干净的版本。

2. 拒绝通过 .php 访问 WordPress 核心功能.htaccess文件

如果您的网站托管在 Apache 服务器上,您可以使用 . htaccess文件通过阻止对整个wp-includes文件夹的访问来帮助保护您的 WordPress 核心functions.php文件。

第 1 步:下载 .htaccess

使用 SFTP 或 cPanel,导航到您网站的根文件夹。 右键单击。 htaccess并选择下载将文件下载到本地计算机。

第 2 步:添加代码以阻止对wp-includes文件夹的访问

在源代码或纯文本编辑器中,打开 . htaccess并添加以下代码:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

保存您的文件。 确保您的编辑器程序不包含文件扩展名。 如果您使用的是 Notepad++ 或 Text Edit,它可能会添加 .txt 文件扩展名。 该文件应该简单地命名为“.htaccess”。

第 3 步:上传修改后的 . htaccess回到根文件夹

上传您编辑的 . htaccess文件回到您网站的根文件夹。 系统将询问您是否要覆盖现有文件。 单击确定

现在你的 . htaccess文件应该阻止外部访问wp-includes文件夹中的任何文件,包括functions.php

3. 使用functions.php拒绝访问functions.php

您可以通过将以下代码片段直接添加到functions.php来阻止对functions.php文件的直接访问。

 if (!empty($_SERVER['SCRIPT_FILENAME']) && 'functions.php' == basename($_SERVER['SCRIPT_FILENAME'])) { die ('Access denied!'); }

4.在根目录外隐藏functions.php

黑客知道所有标准 WordPress 文件的默认位置。 将敏感文件的位置更改为根目录之外的受限访问文件夹可以使其远离黑客。 这个过程比仅仅向您的.htaccess文件中添加一些代码要复杂一些,但是为您的网站增加额外的保护层是值得的。

只需几个步骤,您就可以保护根文件夹之外的functions.php

第 1 步:下载您当前的functions.php文件

如果您要移动主题的functions.php文件,您可以在wp-content → 主题 → yourtheme下找到它。 您的子主题文件将位于wp-content → 主题 → yourtheme-child中。

找到functions.php文件后,通过 SFTP 或 cPanel 将其下载到您的计算机。

第 2 步:在根文件夹之外创建一个新目录

导航到根目录之外的下一个文件夹级别。 您应该会看到根文件夹以及其他几个文件夹的名称。 在此目录中,右键单击并选择Create directory

在 Filezilla 中创建目录

给你的目录起一个容易记住的名字作为你的functions.php文件的位置。

第 3 步:将functions.php上传到您的新文件夹

通过 SFTP 或 cPanel 将您之前下载的functions.php文件上传到新文件夹中。

上传functions.php文件

检查您的新文件夹和functions.php文件权限,并确保它们设置为 600。

设置functions.php文件的权限

第 4 步:将 WordPress 指向新的functions.php文件

您的新目录中应该有一个functions.php文件以及仍在您的主题文件夹中的原始functions.php文件。 为了让 WordPress 找到并使用正确的文件,您需要删除主题文件的functions.php文件和以下代码片段中的所有信息:

 <?php include('/home3/usr/securefunctions/functions.php'); ?>

注意:您的文件路径看起来会有所不同,因为您将使用服务器的目录名称。

在 cPanel 中,您可以打开根目录的functions.php文件并直接编辑它,或者您可以使用源代码编辑器编辑您之前下载到本地计算机的副本。 对于这个例子,我们已经编辑了我们之前使用 Atom.io 下载的副本。

保存您的funtions.php文件并将其上传回您的主题目录。

通过 ftp 返回 functions.php 文件

系统将询问您是否要覆盖该文件。 单击确定

现在,WordPress 应该在根文件夹之外的安全位置引用您的新functions.php文件。

4.更改您的functions.php文件的名称

更改您的functions.php文件的名称是您可以采取的另一个步骤来保护它免受黑客攻击。 您需要将此文件托管在根文件夹之外,因此,如果您已按照在根目录之外隐藏functions.php中的流程进行操作,则只需执行几个额外步骤。

第 1 步:在根文件夹外的安全目录中,更改functions.php的文件名

转到位于根目录之外的functions.php文件夹,并将文件名更改为唯一的名称,例如“keep-out.php”“these-are-not-the-functions-you-are-looking-for”。 php' 。 好的,最后一个有点长,但是只要将它包含在functions.php的主题文件夹副本中的文件路径中,你怎么称呼它并不重要。

第 2 步:编辑根目录下functions.php中的代码以反映名称更改

现在您已将名称更改为functions.php以外的名称,您需要确保functions.php的主题目录副本指向正确的文件名。

functions.php的根文件夹副本下载到本地计算机并使用文本编辑器进行编辑。 将functions.php文件名更改为新文件名,然后保存文件。

 <?php include('/home3/usr/secureconfig/keep-out.php'); ?>

第三步:将functions.php上传回主题目录

系统将询问您是否要覆盖现有文件。 单击确定

现在 WordPress 应该指向您重命名的函数文件。

functions.php的附加安全层

您可以通过对您的wp-config文件进行类似更改(例如重命名它、将其托管在根目录之外以及拒绝公共访问)来为您的整个网站(包括您的functions.php文件)添加一些额外的保护。

如果您在functions.php文件中看到可疑代码并担心您可能已经被黑客入侵,您需要阅读有关如何从 WordPress 网站检测和删除恶意软件的信息。

我可以在 WordPress 的functions.php中添加什么代码?

您可以将许多不同的代码片段添加到 WordPress functions.php文件中。 但是,通过为许多功能使用插件(或编写自己的插件)通常会更好地为您服务。 如果您要添加的代码特定于您的主题,那么您可以将该 PHP 代码添加到您的子主题的functions.php文件中。

下面是一些有用的函数,你可以插入到你的子主题的functions.php文件中:

functions.php中添加一个新的管理员用户

如果您失去了对 WordPress 仪表板的管理员访问权限并且无法通过电子邮件恢复您的用户名或密码,您可以通过您的托管帐户创建一个新的管理员用户。 通过 SFTP 或 cPanel,您可以下载您的functions.php文件并添加以下代码为您的站点创建一个新的管理员用户。

 function qode_add_new_admin_account() { $user = 'your-username'; $password = 'your-password'; $email = 'your-email'; if ( ! username_exists( $user ) && ! email_exists( $email ) ) { $user_id = wp_create_user( $user, $password, $email ); $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); } } add_action( 'init', 'qode_add_new_admin_account' );

在上面的代码中,将“your-username”、“your-password”和“your-email”替换为您自己的凭据。 保存您的functions.php文件并将其重新上传到您的主题文件夹。 这将使用您在代码中分配的用户名、密码和电子邮件地址创建一个新的管理员用户。

上传文件后,导航到站点的登录页面并使用新的用户名和密码登录。登录成功并确认您具有管理员权限后,您应该删除添加到的代码从functions.php创建新的管理员帐户。

functions.php中添加和删除图像大小

当您将图像上传到 WordPress 媒体库时,会生成图像的多个变体。 除了您的全尺寸图像外,WordPress 还具有默认的缩略图、小尺寸、中尺寸和大尺寸。 您的主题通常会为您网站的各个部分提取最佳图像大小。

如果您正在创建自己的主题或需要修改子主题以适应额外的自定义图像大小,您可以在您的functions.php文件中执行此操作。

使用以下代码并将您的自定义图像尺寸名称从“custom-small-square”和“custom-landscape”更改为您想要使用的任何名称。 您的自定义图像大小名称旁边的数字表示图像大小(以像素为单位),因此请输入宽度第一和高度第二的像素值。

 function register_custom_image_sizes() { if ( ! current_theme_supports( 'post-thumbnails' ) ) { add_theme_support( 'post-thumbnails' ); } add_image_size( 'custom-small-square', 450, 450, true ); add_image_size( 'custom-landscape', 1000, 600 ); } add_action( 'after_setup_theme', 'register_custom_image_sizes' );

请记住,额外的自定义图像尺寸会影响您的网站并影响加载时间。 If you have some WordPress default image sizes that your theme doesn't use, you may want to delete and disable those to make room for your custom sizes.

If you want to disable WordPress default image sizes, you can place this code snippet into your functions.php file:

 add_filter( 'intermediate_image_sizes_advanced', 'prefix_remove_default_images' ); // This will remove the small, medium, and large default image sizes. function prefix_remove_default_images( $sizes ) { unset( $sizes['small']); // 150px unset( $sizes['medium']); // 300px unset( $sizes['large']); // 1024px return $sizes; }

If you only need to disable one or two sizes, you can only add those sizes to the code above and delete the code that you don't need.

Use functions.php to allow additional file types in uploads

WordPress only allows a few different file types to be uploaded in your WordPress dashboard. This is a reasonable security measure, but you might encounter a situation where you need to upload a file type that's not natively allowed.

To add more allowed file types to WordPress, add the following code to your child theme's functions.php :

 function additional_upload_file_types($mime_types){ $mime_types['stl''] = 'application/sla'; $mime_types['stl'] = 'application/vnd.ms-pki.stl'; $mime_types['stl'] = 'application/x-navistyle'; return $mime_types; } add_filter('upload_mimes', 'additional_upload_file_types', 1, 1);

For the above example, we used the stl file type, which is a CAD file type. It's an unusual file type to upload to a website outside of certain niche industries, but if your site is for an industrial designer, engineering firm, or even an orthodontics lab, you might find the ability to upload STL files really useful.

You can replace the $mime_type variable with whatever file extension suits the needs of your website. You'll also need to include the media type and subtype after that (eg 'application/sla' or 'image/octet-stream'). Here's a complete list of mime types that you can refer to.

Frequently asked questions about editing the functions.php file in WordPress

We've covered what the functions.php file is, how to find functions.php , how to access it, how to edit it, and a few code snippets you can add to your functions.php file. We'll wrap things up with a few helpful answers to frequently asked questions.

Do I really need to use a child theme to edit functions.php ?

简短的回答? 是的。

If you're a theme developer, you'll definitely want to add your theme-specific functions directly to your theme's functions.php file. If you're modifying a theme from another developer that will get regular updates, however, you'll absolutely want to use functions.php within a child theme.

Most theme developers will periodically make updates to their themes for security and performance reasons, or to add new features. If you change the parent theme's functions.php file, those changes will all be overwritten when you update to your theme's latest version. All your hard work and customizations — poof! 走了。

Child themes aren't touched when the parent theme updates, so if you make changes to your child theme's functions.php file, your changes will be preserved any time you update your parent theme.

I edited functions.php and now I don't have access to my WordPress dashboard. 帮助!

In the unfortunate event that you edited the functions.php file and caused a critical error on your site that kept you from accessing the WordPress dashboard, don't worry — all is not lost!

There are a few things you can do to restore access to your site. You can edit functions.php via SFTP and a text editor or directly in cPanel if you know which bit of code caused the issue. Alternatively, you can restore functions.php from a backup or download a fresh copy of functions.php from your theme developer.

I know what code I messed up. I just need to access and edit functions.php to fix it.

See How to edit functions.php above for instructions on how to access and edit your theme or child theme's functions.php file.

I have no clue what I did to my functions.php file, but I have a backup.

If you have a backup on hand, you can access your files either on your web host's server or your remote server (depending on where you have opted to store these files), and use them to replace your corrupt functions.php file via SFTP or cPanel.

If you feel more comfortable restoring your entire site backup rather than trying to restore just the functions.php file, our article, “How to Restore WordPress from a Backup” goes in depth on the different methods you can use to restore your WordPress site.

I have no idea what code caused the problem and I didn't make a backup.

If you don't have a backup, you can download a fresh copy of the theme you're using from your theme developer, extract the functions.php file, and overwrite the broken functions.php file on your server via SFTP or cPanel.

Note: If you're using a theme that hasn't been updated in awhile, you may encounter issues in overwriting functions.php with a version that's from a much more recent update. If you encounter issues, you might be better off just manually updating your entire theme to the latest version. Alternatively, you can contact your theme developer to get the theme files for your current version and use that version of functions.php .

Can I add JavaScript to my functions.php file?

Yes, you can add code to your functions.php file that will add your custom JavaScript to either specific pages, posts, or all pages and posts on your site. This article covers all the different ways you can add JavaScript to your functions.php file.