当您在WordPress网站上进行更新时,WordPress会进入维护模式并向网站访客展示一个临时页面,例如更新插件,主题或核心。 这是为了避免在更新修补文件时出现任何破损或不同步的内容。 但是,这有几个问题。 首先,有时您的WordPress网站可能会陷入维护模式。 这基本上会使用整个站点瘫痪,直到您手动修复它。 第二个是默认维护页面/消息没有样式,看起来太不友好了,并且在向访问者和客户发送消息时受到限制。 或者我们可以采取更佳友好的方式。
与普通页面不同的是,维护页面使用 503 标准 HTTP 状态代码,告诉搜索引擎宕机是暂时的,避免搜索引擎优化惩罚。
在本文中,我们将教你几种不同的方法来实现这种维护页面。
WordPress维护模式是一个很好的内核小功能,在3.0版本正式引入。 每当您更新插件,主题或WordPress安装时,都会向访问者显示以下消息,直到更新操作完成。
WordPress维护模式默认页面
在更新和安装过程中,某些后端进程会在短时间内停止(通常只需几秒钟,具体取决于更新的数量和大小)。 WordPress利用 wp_maintenance() 函数在您的站点上创建一个临时的.maintenance文件,其中包含您在上面看到的警报。 更新完成后,文件将自动删除,您的网站将恢复正常。
默认情况下,WordPress在维护模式下返回503 HTTP状态代码(服务不可用。)。 这基本上告诉Google你在页面上工作或出了什么问题,他们会稍后再回来查看。 这是您要为SEO显示的标题响应,因为如果您的网站暂时关闭,它不会损害您的排名。 Yoast发布了一篇关于503状态HTTP头在SEO方面的重要性的文章,大家可以阅读了解下。
WordPress用户遇到的一个常见问题是他们的网站可能会陷入维护模式。 这可能非常可怕,因为这也会影响管理员和后端。 突然间,您无法登录到您的WordPress网站,并且您的网站基本上已关闭,只能看到临时维护通知信息。
这种情况通常在发生冲突时发生,在这种情况下.maintenance文件可能会认为仍有待处理的操作和/或需要完成的更新。 这会导致文件保留,并且永远不会自行删除。 什么原因导致冲突? 根据我们的经验,如果用户以非常快的速度手动点击许多不同插件上的“立即更新”,我们就会看到这种情况发生。 默认情况下,WordPress会按顺序错开更新,但如果连接中甚至有一个ms的延迟,则可能会导致突然冲突,从而触发维护模式一直卡在那里。
为确保不会发生这种情况,您可以在WordPress得插件管理列表(已安装的插件)上方点击“可用更新”,然后从批量操作下拉列表中选择“更新”。 然后单击“应用”。这将按顺序更新,就不太可能发生更新冲突。
批量更新插件
防止这种情况发生的另一个建议是及时更新插件。 不要等待过长的时间才去尝试更新插件的新版本,出于安全的考虑我们也应该尽可能地对已安装的插件执行更新。 如果真的同时有30多个插件(只是大个比方)需要更新,最好逐个更新它们,以确保您的网站没有任何中断。
如何快速退出WordPress维护模式
如果您的WordPress网站目前卡在维护模式,您只需删除已创建的.maintenance文件,网站即可恢复正常。。
Step 1 -第一步是通过FTP/SFTP登录您的WordPress网站服务器。
Step 2 –导航到WordPress站点和/或公共HTML文件夹的根目录, 这是通常包含wp-config.php文件的文件夹。 然后,找到并删除.maintenance文件。
WordPress维护模式临时文件.maintenance
删除后,您可以在浏览器中刷新您的网站,您的网站应该恢复正常。如果还是不能够正常访问,建议您清除WordPress站点上的缓存,参考阅读文章《如何清除/刷新DNS缓存(Windows,Mac,Linux)》。
您可以通过多种方式扩展WordPress维护模式,例如手动启用它或自定义页面以使其更加友好。 您还可以向访问者和/或客户展示更多消息,以便他们再次光临你的网站。 请记住,您在网站上获得的流量越多,维护模式的消息传递和样式就越重要,因为越多人会更有可能看到它。
除了运行更新之外,您可能希望改进维护模式页面的另一个原因是,您可能正在手动将更改迁移到生产。 我们始终建议首先在开发站点上进行测试,但有时您可能需要在生产站点上临时展示维护页面一两个小时。
使用内置维护文件
WordPress 有一个内置的维护模式,在您更新网站时激活。它会在网站根目录下创建一个 .maintenance
文件。该文件包含您要向访客显示的信息以及维护模式的激活时间。同样,您也可以手动创建一个 .maintenance
文件,将网站置于维护模式。
您可以在WordPress网站安装的根目录下创建 .maintenance
文件,也就是 wp-config.php
文件所在的位置,如下所示:
然后在文件中输入以下代码:
<?php $upgrading = time(); ?>
这将立即激活 WordPress 维护模式。如果调用内置的 wp_is_maintenance_mode
函数,它应该会返回 true
,确认维护模式已激活。重新加载页面时,WordPress 将显示默认的维护信息。
使用代码手动启用WordPress维护模式
您可以通过将以下内容放在 functions.php 文件中来手动启用 WordPress 维护模式。 或者更好的是,使用WordPress子主题来完成它。
// 启用WordPress维护模式 function wp_maintenance_mode(){ if(!current_user_can('edit_themes') || !is_user_logged_in()){ wp_die('<h1 style="color:red">网站更新维护中</h1><br />十分抱歉,我们的网站正在维护更新中。马上恢复正常,请喝口水回来再试!'); } } add_action('get_header', 'wp_maintenance_mode');
这将将会对未登录的用户访问网站时展示临时维护的通知消息。但管理员仍然可以访问仪表板,因为它正在使用内置的 is_user_logged_in() 函数。
WordPress维护模式提示信息自定义(代码方式)
但是,上面的页面不可自定义(它也是动态生成的),但有些站长可能想将其设置为与网站的品牌和外观相匹配。老外 Hongkiat 提供的方案值得大家参考,您可以创建自定义页面。 您需要做的就是创建一个文件,将其命名为maintenance.php,然后将其放在/wp-content/文件夹中。 然后,使用CSS样式定义页面外观,甚至可以从头开始创建整个页面。
这样,当您更新WordPress核心,主题或插件时,它将使用新文件和您的自定义。 已经在 /wp-includes/ 中的 load.php 文件中定义了对此文件的检查,因此您无需执行任何额外操作。 它看起来像这样:
if ( file_exists( WP_CONTENT_DIR . '/maintenance.php' ) ) { require_once( WP_CONTENT_DIR . '/maintenance.php' ); die(); }
自定义维护页面
默认的维护信息简单明了。
您可以在 wp-content
目录下创建名为 maintenance.php 的自定义维护页面,对其进行自定义。您可以在页面中添加自定义信息和样式,使其更吸引访客,或使其更符合网站的整体设计。
下面是一个代码示例,你可以将其放入该文件中:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Maintenance</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css"> <style> #container { display: flex; width: 100vw; height: 100vh; padding-inline: 20vw; box-sizing: border-box; text-align: center; justify-content: center; align-items: center; flex-flow: column wrap; } </style> </head> <body> <div id="container"> <h1>Maintenance</h1> <p>Our website is currently undergoing scheduled maintenance. We should be back shortly. Thank you for your patience.</p> </div> </body> </html>
现在,当你重新加载网站时,应该可以看到整个页面都使用了 maintenance.php
文件中更新的内容和样式。
该文件的问题在于,您不能使用WordPress函数,如 wp_head
、wp_title
、wp_footer
、esc_html_e
等。这意味着您不能在该文件中显示网站标题、调用样式表和 JavaScript 文件等资产,或使用 WordPress 函数呈现任何其他动态内容。
这就是为什么如上所示,我们只添加了静态内容和静态链接样式表。
这将导致更多问题,比如无法翻译维护页面上的内容。而且,由于样式表不能动态排序,如果更换主题,维护页面的设计可能会显得格格不入。
使用WordPress维护模式插件
如果您不熟悉编辑代码或需要更多内容,您还可以通过使用一些免费和高级插件来实现更高阶的WordPress维护模式提示页面。
0. Feature Flipper
在 WordPress 网站上启用维护模式的最简单方法是使用插件。有多种选择,比如使用 Feature Flipper。该插件包含多种实用工具,其中之一可让您轻松激活维护模式。
安装并激活插件后,导航至“设置”>“功能”>“网站”,然后启用“Maintenance”选项。如下所示,您还可以根据自己的需要自定义维护页面内容。

维护页面会自动继承活动主题的样式,以确保页面与主题样式无缝匹配。如果您更换了主题,维护页面也会相应地适应新的样式。
下面是 WordPress.org 软件库中一些流行主题的维护页面:
TwentyTwentyFive
TwentyTwentyFour
TwentyTwentyOne
1. WP Maintenance Mode
WP Maintenance Mode是为您的WordPress网站提供快速简便的维护模式通知的下载量最高的插件之一。 它完全免费,由知名的网页设计博客Designmodo的团队开发。 使用该插件你可以在你的WordPress处于维护模式时向访客展示一个非常友好的界面,如下方截图所示。 它适用于Multisite,但重要的是要注意它可能与部分缓存插件不兼容。
WordPress维护页面插件-WP Maintenance Mode
该插件目前拥有超过60万个激活安装,并且获得4星评分(5星满分)。 您可以从WordPress插件市场下载WP Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:
- 能够更改颜色,文本和背景
- 订阅表格,联系表格和倒计时
- 包含的目标网页模板
- 适用于任何WordPress主题
- SEO选项-503 HTTP标头响应
- 您可以从维护中排除URL,如果您更改了WordPress登录URL,这尤其方便
2. Coming Soon Page & Maintenance Mode by SeedProd
Coming Soon Page & Maintenance Mode插件(好Q叉长的名字)由SeedProd 开发并于2011年推出。它在WordPress社区中享有盛誉,因为它是即将推出页面和WP维护模式页面支持良好的插件。
WordPress维护页面插件-Coming Soon Page & Maintenance Mode
它目前有超过70万个有效激活安装,并获得了5星满分好评。 您可以从WordPress插件市场下载Coming Soon Page & Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。它的一些附加功能包括:
- 适用于任何WordPress主题并采用响应式设计
- 支持自定义外观
- 支持添加CSS和HTML
- 多站点和BuddyPress支持
3. Slim Maintenance Mode
Slim Maintenance Mode插件完全符合您的想法。 该插件所实现的实质就是我们前面介绍的代码实现自定义WordPress维护模式页面。 只需激活插件,在维护模式下只有管理员才能看到该网站。 如果你想要一些免费,快速和轻量级的插件,这个插件无疑是最佳选择。
WordPress维护页面插件-Slim Maintenance Mode
该插件相对比较小众一些,目前的安装量远不如前面几个插件,但目前的得到不错的好评。您可以从WordPress插件市场下载Slim Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:
- 小巧,简单,轻便
- 无需担心额外设置,只需激活启用即可
- 适用于任何WordPress主题
- 后端消息提醒您知道它处于活动状态
- 503 HTTP标头响应
- 兼容主流缓存插件
4. Maintenance Mode
Maintenance Mode是由Lukas Juhas开发的WordPress插件,是轻量级插件和默认包含的WordPress维护模式的核心。 该插件是完全免费的,使用wp_die() 函数,并可以通过启用WYSIWYG编辑器优化页面。
WordPress维护页面插件-Maintenance Mode
它目前有超过5万+个安装,并且获得5星评分。 您可以从WordPress插件市场下载Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:
- 简单易用,轻量代码设计
- 利用本机WYSIWYG获取文本和自定义代码
- 支持用户角色(管理员可看网站,用户对应的是维护模式通知页面)
- 503 HTTP标头响应
5. Minimal Coming Soon & Maintenance Mode for WordPress
Minimal Coming Soon & Maintenance Mode,又是一个针对WordPress维护模式开发的名字超长的WordPress插件, 由博客WP Loop的团队开发维护。
WordPress维护页面插件-Minimal Coming Soon & Maintenance Mode
它目前有超过5万+个安装,5星满分好评。 您可以从WordPress插件主页下载Minimal Coming Soon & Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:
- 兼容所有WordPress主题和插件
- 能够更改您看到的每个元素,包括背景颜色,封面图像,字体等。
- 在激活之前预览维护页面
- 兼容缓存插件
- 支持自定义登录URL
- 仅对未登录的用户可见
- 支持Google Analytics
- 谷歌字体
6. Elementor
您还可以使用Elementor之类的页面构建器插件来设计自己的WordPress维护模式页面和即将推出页面。 事实上,采用这种办法,你可以轻松地按照自己的想法定制这类页面。
WordPress页面创建插件- Elementor
它目前拥有超过90万+个安装,且还是5星评分。 点击Elementor直接下载插件安装包,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:
- 100%可定制和设计
- 提供登录,订阅,表单,倒计时,社交共享按钮和其他小部件
- 访问角色控制
- 支持维护模式和即将推出页面
- 对搜索引擎友好的HTTP 200和HTTP 503状态码
- 12个设计师精选设计的维护模式页面和即将推出页面模板
7. 利用ManageWP提供的WP维护模式
ManageWP是一种从一个仪表板管理所有WordPress站点的服务,还包括维护模式选项。 它们有一些很棒的默认模板,轻松切换你喜欢的样式,且还可以编辑HTML。
ManageWP提供的维护模式功能
小结
如您所见,WordPress核心包含的WordPress维护模式非常实用。 但WP自带的维护模式提示页面实在有点反人类,你可以通过扩展和定制,以匹配你的WordPress网站设计风格,提升用户体验。 您也可以自定义维护提示消息,以便访问者和客户了解当前无法访问的原因。当然如果您陷入维护模式,通过我们前面的教程你也应该清楚如何快速恢复您的网站访问。
评论留言
唇枪舌剑 (1)
ᕕ(ᐛ)ᕗ变身!
2019.6.14 00:06
学习了。