如何更新WordPress主题:安全而深入的指南

如何更新WordPress主题:安全而深入的指南

WordPress 主题是 WordPress 网站最重要的组成部分之一。它决定着网站的外观、内容的显示方式,让网站看起来更现代、更专业、更符合品牌形象。

因此,及时更新主题并确保其始终正常运行非常重要。

但有时这并不完全简单。如果您已经定制了 WordPress 主题,更新它就意味着您有可能丢失自己的作品。如果您网站中的插件与新版本的主题不兼容,您需要决定哪些代码需要更新,哪些不需要更新。如果你正在使用自己定制的主题运行 WooCommerce 商店,那么你需要确保更新后它能正常运行。

在本篇文章中,我将教你如何更新 WordPress 主题。

为什么要不断更新 WordPress 主题?

保持 WordPress 网站代码最新是非常重要的。新版本的插件、主题和 WordPress 本身的发布都是有原因的。不及时更新可能会给您的网站带来风险。让我们来看看您应该始终保持网站更新的三个原因:安全性、兼容性和功能。

#1 安全性

确保网站代码始终处于更新状态的最重要原因是安全性

主题、插件和 WordPress 核心的更新中有很大一部分是安全补丁:旨在克服任何安全漏洞的小版本。

由于 WordPress 是一个开放源代码系统,有一个活跃的社区来监控软件的安全问题和其他问题,因此任何安全漏洞都会被公开讨论并尽快修复。

这也是 WordPress 的优点之一:活跃的社区可以确保快速发现并修复漏洞。

但这也有不利的一面:这一切的公开性意味着,任何想攻击你网站的人都会知道某个版本的主题存在问题。他们可能会瞄准使用该版本主题的网站。

因此,一旦有更新发布,您需要立即更新主题、插件和 WordPress 内核,以避免成为攻击目标。

如果你安装了一个好的安全插件,当有新版本的主题发布时,你就会收到提醒,这样你就没有借口不运行更新了。下面,我将介绍如何安全地进行更新,以便网站在更新期间和更新后仍能顺利运行。

现在,你应该相信:保持网站更新会增强其安全性。

#2 兼容性

主题更新也是为了确保与最新版本的 WordPress 兼容。这要么在 WordPress 新版本发布后立即进行,要么在短时间内完成。优秀的主题开发者会根据 WordPress 的新版本(以及创建时的开发版本)测试他们的主题,并做出任何必要的更改以保证兼容性。

不过,随着时间的推移,WordPress 会不断推出新版本,您的主题可能会出现兼容性问题。根据我的经验,与插件相比,主题出现不兼容问题的情况要少得多,但这仍然是您需要注意的问题。

更新主题时,应首先确保运行的是最新版本的 WordPress

#3 功能

保持主题更新的第三个原因是充分利用开发人员可能添加到主题中的新功能。

主题时不时会更新一些新功能,这可能是因为用户需要额外的功能,也可能是因为主题可以利用 WordPress 本身的新功能(我说的是 Gutenberg),并为主题添加额外的功能。

如果你的主题有新功能可以增强你的网站,为什么不加以利用呢?

如何在 WordPress 中更新主题(两种方法)

更新主题是网站日常维护的一项重要任务。在运行任何更新之前,一定要对网站进行备份。

以下是在 WordPress 中更新主题的方法:

  1. 如果您的主题没有自定义,请转到 外观 > 主题 > 点击活动主题上的 “立即更新”。
  2. 如果您的主题包含自定义代码,使用最新版本更新主题将覆盖您的所有自定义设置。要安全地更新自定义主题,请使用子主题。

如何安全地更新 WordPress 主题

在 WordPress 中更新主题非常简单。只需进入仪表盘 > 更新并选择主题,然后点击更新主题按钮即可。

更新主题

更新主题

但是,等等!你可能认为只需点击更新按钮就可以了,对吗?当然,这可以更新主题。但这样做并不安全。

每次更新 WordPress 网站的任何元素(主题、插件或 WordPress 核心)时,您都应该备份网站并测试更新后的软件,以检查是否一切正常。为了在不触及您的 WordPress 实时网站的情况下完成这项工作,您应该先在您网站的 WordPress 暂存版本上运行更新。

让我们来详细看看如何做到这一点。

先进行备份

在对网站进行更新之前,一定要进行备份。这样,如果更新导致网站崩溃,你就有东西可以还原网站了。

如果您遵循以下建议并始终先在暂存服务器上进行测试,那么您就不太可能遇到任何问题:毕竟您已经测试过了。不过,安全总比遗憾好。

宝塔面板提供计划任务执行自动备份
宝塔面板提供计划任务执行自动备份

如果您没有使用宝塔,而且您的主机提供商不提供简单的网站备份,那么您就需要使用备份插件。免费的 Updraft Plus 插件可以让您运行自动和手动备份,恢复起来也相对简单。当然,许多网站还提供快照服务支持,执行更新前生成一个服务器快照也是可以的。

何时运行更新

首先,值得确定的是运行更新的最佳时间。您希望尽量减少停机时间或对网站访问者造成的干扰,这意味着在一天中访问者数量最少的时候(或一周中的某一天)运行更新是合理的。

不要认为这是一天中您最不可能使用网站的时间:如果您有大量来自海外的访客,那么当您在睡觉时,访客数量可能会激增。

使用谷歌分析等工具确定网站访问量最少的时间,并据此安排更新。

一旦掌握了这些信息,您就可以安排每天或每周的那个时间段进行网站更新。此时,您不需要在暂存网站上进行测试:您可以在方便的时候进行测试。但更新到实时网站会造成一定的停机时间,因此要将更新安排在影响最小的时间。

Easy Updates Manager 插件的高级版本可让您自动更新或手动安排更新。

Easy Updates Manager 插件

Easy Updates Manager 插件

使用暂存网站

进行更新在对主题进行更新之前,您应始终测试更新是否能正常运行,是否与网站中的其他代码发生冲突,以及更新后网站是否仍能正常运行。

要做到这一点,您需要一个对公众不可见的网站副本,您可以安全地破坏它而不会造成任何不必要的后果。

测试的最佳场所是暂存网站。这是因为暂存网站与真实网站位于同一服务器上,是真实网站的复制品。这就意味着,在暂存网站上运行的任何程序也将在您的实时网站上运行。

测试更新

您已经创建了暂存网站,准备安装主题更新并进行测试。接下来该怎么做?

请按照以下步骤操作。

  1. 检查主题是否与您的 WordPress 版本兼容。如果不兼容,您可能需要更新 WordPress(这始终是首要任务)。按照此测试流程进行更新,使用暂存站点测试更新,然后推送到实时站点。
  2. 在 WordPress 管理页面的 “主题” 界面更新主题,方法是点击主题名称下方的 “更新” 链接,如果您从第三方供应商处购买了主题,则上传新版本。
  3. 测试网站的暂存版本是否正常运行。测试不同的内容类型(主页、单个帖子和页面、存档页面、任何自定义帖子类型或分类法)。检查小工具菜单是否存在问题。测试表单提交或购买等流程。您需要测试的内容取决于您的网站,但一定要全面;如果您快速浏览网站,而没有测试所有内容类型和流程,您可能会发现用户比您更早发现问题,可能是在他们购买或填写表格时。
  4. 如果主题更新导致网站崩溃,请查看主题的支持论坛,看看是否存在任何已知问题。您可以打开管理界面中的 “主题” 页面,点击主题获取相关信息。点击链接查看该版本的详细信息,然后在右侧边栏中找到查看支持论坛按钮。查看是否有其他人遇到过问题。
  5. 如果您遇到了问题,但没有其他人报告过,请向主题开发人员报告。这将有助于他们解决问题。然后,当他们发布后续版本的主题时,你需要重复这一过程,希望他们能修复。
  6. 如果一切正常,你就可以将暂存网站推向上线,因为你已经彻底测试过了。

如何更新自定义 WordPress 主题

但如果您已经编辑了主题,并希望在不丢失更改的情况下进行更新,该怎么办呢?

这就比较麻烦了,但也不是不可能,只要你还记得修改了什么,或者更具体地说,你编辑了哪些文件。

使用子主题避免更新自定义 WordPress 主题时出现问题

更新自定义 WordPress 主题最安全的方法是创建一个子主题并在其中添加您的自定义设置。如果您不确定自己的网站是否使用了子主题,可以使用我们的 WordPress 主题检测工具来检查网站。

为此,您需要用编辑过的主题文件创建一个子主题。请在您的暂存网站上按照以下步骤操作(因为如果您没有 100% 正确操作,可能会破坏您的实时网站)。

  1. 备份父主题并将其复制到本地计算机。这就意味着你拥有一份修正版主题的副本,以防在更新主题后遗漏任何内容并需要进行编辑。
  2. 为现有主题创建子主题。添加包含父主题详细信息的样式表(见上文)和从父主题获取样式的函数文件。
  3. 确定你对父主题的函数文件所做的任何修改。将新功能复制到子主题的功能文件中。
  4. 确定你对父主题样式表所做的任何修改。将这些代码复制到子主题的样式表中。这将覆盖父主题中相同元素、类或 ID 的样式。
  5. 找出你编辑过的模板文件或包含文件。将这些文件复制到子主题中,如果文件位于子目录中,请确保使用相同的文件结构。
  6. 激活子主题,而不是父主题。
  7. 测试网站。检查你对主题所做的任何定制,特别是检查使用你编辑并复制过来的模板文件显示的页面。
  8. 仔细检查文件,确保没有遗漏任何编辑过的文件。
  9. 更新暂存网站中的父主题,可以通过 “主题 “屏幕更新,如果没有从主题目录中获取主题,也可以通过上传主题的方式更新。
  10. 再次测试网站。确保你编辑的任何模板文件都能正常工作。如果缺少任何内容,请重新查看父主题编辑版本的备份,并将需要的内容复制到子主题中。
  11. 再次测试。当您对暂存网站的运行情况感到满意时,就可以将暂存更改推送到实时网站(确保您先备份了实时网站)。测试您的实时网站,然后就可以开始了。

完成这些操作后,下次更新父主题时就不需要再重复这些操作了。但请记住:如果将来需要进行更多更改,请对子主题而不是父主题进行更改。在进行任何更改之前,请先备份子主题,在暂存网站上测试所有内容,为了完全彻底,请使用 Github版本控制系统

GitHub 网站

GitHub 网站

更新父主题: 对子主题进行任何更改

有时您可能会发现,在更新父主题后,由于对子主题所做的更改而导致网站崩溃。

也许你在父主题的钩子上附加了一个函数,而这个钩子已经被修改甚至删除了。也许你的子主题的模板文件与父主题的模板文件不再一致,这意味着你的子主题生成的页面与网站的其他部分不一致。

如果出现这种情况,你需要做以下两件事之一:

  • 从子主题中删除相关文件,停止使用子主题中的相关文件。有时,父主题的更新意味着它的运行方式比子主题更适合你,因此你不再需要该文件。一旦你删除了子主题中的文件,WordPress 就会使用父主题中的文件。
  • 编辑子主题中的文件,使它们与父主题保持一致。

如果您选择上述第一种方法,请确保在您的暂存网站上进行测试,并在编辑之前保留子主题的备份。同样,使用 Github 可以帮助你随时了解更改情况。

如果你需要使用第二种方法编辑子主题文件,你需要明确你做了哪些改动,对父主题做了哪些改动,以及它们之间是如何交互的。比较父主题和子主题之前版本和新版本的代码是很有必要的。这样你就能发现问题所在并加以解决。

阅读此次发布的父主题的文档:主题库中的发布说明,或开发者网站上更详细的文档。这将有助于你识别主题中影响子主题的任何更改。

再次强调,请务必保留备份并进行全面测试。

如何定制 WordPress 主题以便将来安全地更新它

如果您还没有定制过主题,但正打算这么做,那么可以从一开始就将您的定制添加到子主题中,这样可以让事情变得更简单。

如果你直接从主题目录或主题供应商处编辑主题,那么在更新主题时,你对主题所做的任何更改都会丢失。新的主题文件会覆盖你编辑过的文件,你的所有工作都将付诸东流。

这就是为什么你不应该直接编辑第三方主题的原因。编辑第三方主题的正确方法是为该主题创建一个子主题,并在其中添加你的编辑内容。

让我们来详细了解一下子主题:它们是如何工作的,以及如何使用它们来安全地更新(和编辑)您的自定义 WordPress 主题。

使用子主题避免更新主题时出现问题

子主题是与父主题协同运行网站的主题。它可以为父主题添加额外的功能,如设计元素和功能,但不会覆盖父主题。相反,您在子主题中创建的特定文件将覆盖父主题中同名的特定文件。这与 WordPress 模板层次结构相结合,可以告诉 WordPress 使用哪个主题模板文件来显示网站上的某个页面。

如果你对主题模板文件一无所知,感到困惑,让我举例说明。

您现有的主题有三个用于显示档案页面的文件:

  • category.php 文件,用于显示分类的存档页面。
  • archive.php 文件,该文件将显示所有存档类型,除非存在更具体的文件(如 category.php)。这意味着该文件将用于标签存档(例如),但不用于类别存档。
  • index.php文件,这是一个后备文件,用于没有更具体文件的任何内容类型。在这种情况下,由于存在 archive.php 文件,任何存档页面都不会使用 index.php 文件。

在网站上显示归档文件时,WordPress 会运行这个层次结构,并选择最先显示的文件。如果是分类归档,则是 category.php。如果是标签归档,则是 archive.php,因为主题没有 tag.php 文件。

但如果你创建了一个子主题,WordPress 总是会选择子主题中层次结构最高的文件,而不是父主题中的文件。

也就是说,如果你创建的子主题有一个 archive.php 文件,就会出现以下情况:

  • 对于分类,WordPress 会使用父主题中的 category.php,因为它在层次结构中较高。
    对于标签,WordPress 会使用子主题中的 archive.php,因为子主题中的同名文件会覆盖父主题中的同名文件。

这意味着,如果你想编辑主题中的某个文件,只需创建一个子主题,将父主题中的文件复制到子主题中,然后进行编辑即可。父主题中的原始文件不会被触动,因此当你更新主题时,不会丢失任何工作。这也意味着即使更新后,WordPress 也会使用子主题中的 archive.php 文件,而不是父主题中更新后的 archive.php 文件。

这对更新主题有两个影响:

  • 创建子主题意味着你可以更新父主题,而不会丢失你的编辑内容。
  • 更新父主题时,需要检查代码中是否有与子主题冲突的更改。

我们很快就会谈到第二点。但如何使用子主题来保存你可能想对主题进行的任何编辑呢?让我们一起来看看。

  1. 创建你的子主题,它需要一个样式表和一个函数文件,你可以从中调用父主题的样式。
  2. 确定要编辑父主题中的哪些文件。
  3. 如果要编辑的文件是功能文件或样式表,请不要复制它们,而是将新代码添加到已在子主题中创建的样式表和功能文件中。
  4. 如果要编辑的主题是模板文件或包含文件,请在子主题中复制这些文件,从父主题中完全复制。复制时请使用相同的文件结构,例如,如果循环文件位于父主题文件夹/包含文件/loop.php,则将其复制到子主题文件夹/包含文件/loop.php。
  5. 编辑子主题中的文件。
  6. 在 WordPress 管理界面激活子主题,而不是父主题。

就是这样!唯一的额外工作就是创建子主题,而创建子主题非常简单快捷。现在,无论何时需要更改主题,只需编辑子主题即可。这样,当你更新父主题时,就不会丢失你的工作了。

如何在 WooCommerce 网站上更新 WordPress 主题

如果您正在使用 WooCommerce,那么您可能已经编辑了主题,使其与 WooCommerce 兼容

这只有在您使用的是 3.3 版之前的 WooCommerce 版本时才有必要。WooCommerce 团队的建议是升级插件,然后你就会发现不需要在主题中添加额外代码来确保兼容性了。

但如果由于某种原因,你无法升级到当前版本的 WooCommerce(我不建议这样做),那么你就需要在更新主题之前,将你对主题所做的修改复制到一个子主题中。

你需要采取以下两种方法之一:

  • 如果你在主题中创建的 woocommerce.php 文件中添加了 woocommerce_content()函数,只需将该文件复制到子主题中,并将当前主题作为父主题即可。
  • 如果使用了 WooCommerce 钩子,请将代码从主题的功能文件复制到子主题的功能文件中。不要复制整个文件,只需复制代码即可。

更常见的情况是,您在主题中添加了额外的模板文件,以覆盖 WooCommerce 的模板文件。这适用于任何版本的 WooCommerce

如果你这样做了,你需要创建一个子主题,然后将这些模板文件复制到你的子主题中。确保使用与原主题相同的文件结构。然后按照上面的说明激活子主题,测试并更新父主题。

完成上述步骤后,您需要进行比无店铺网站更全面的测试。除了对网站进行更全面的测试(见上文),您还应该测试商店的运行情况。测试商店主页面、产品分类页面、单个产品页面和结账流程。确保一切正常运行后,再将更改推送到正式网站。

小结

现在您已经知道为什么更新 WordPress 主题很重要了,最重要的是知道如何根据不同情况更新主题了。一个最新的主题将更加安全,与 WordPress 核心兼容,并能受益于任何新功能。

但正确更新也很重要。在运行更新之前,一定要进行备份,先在您的暂存网站上进行测试,然后才能将更改推送到实时网站。

如果你对主题做了任何更改,就会有额外的工作。请先创建一个子主题,并在其中添加您所做的或需要做的任何更改。这样,当你更新父主题时,你的更改就不会丢失。

评论留言