WordPress维护模式 – 故障排除和自定义页面教程

当您在WordPress网站上进行更新时,WordPress会进入维护模式并向网站访客展示一个临时页面,例如更新插件,主题或核心。 这是为了避免在更新修补文件时出现任何破损或不同步的内容。 但是,这有几个问题。 首先,有时您的WordPress网站可能会陷入维护模式。 这基本上会使用整个站点瘫痪,直到您手动修复它。 第二个是默认维护页面/消息没有样式,看起来太不友好了,并且在向访问者和客户发送消息时受到限制。 或者我们可以采取更佳友好的方式。 今天我们将探讨解决这些问题的一些解决方法。

WordPress维护模式是一个很好的内核小功能,在3.0版本正式引入。 每当您更新插件,主题或WordPress安装时,都会向访问者显示以下消息,直到更新操作完成。

WordPress维护模式 – 故障排除和自定义页面教程插图

WordPress维护模式默认页面

在更新和安装过程中,某些后端进程会在短时间内停止(通常只需几秒钟,具体取决于更新的数量和大小)。 WordPress利用  wp_maintenance() 函数在您的站点上创建一个临时的.maintenance文件,其中包含您在上面看到的警报。 更新完成后,文件将自动删除,您的网站将恢复正常。

默认情况下,WordPress在维护模式下返回503 HTTP状态代码(服务不可用。)。 这基本上告诉Google你在页面上工作或出了什么问题,他们会稍后再回来查看。 这是您要为SEO显示的标题响应,因为如果您的网站暂时关闭,它不会损害您的排名。 Yoast发布了一篇关于503状态HTTP头在SEO方面的重要性的文章,大家可以阅读了解下。

WordPress用户遇到的一个常见问题是他们的网站可能会陷入维护模式。 这可能非常可怕,因为这也会影响管理员和后端。 突然间,您无法登录到您的WordPress网站,并且您的网站基本上已关闭,只能看到临时维护通知信息。

这种情况通常在发生冲突时发生,在这种情况下.maintenance文件可能会认为仍有待处理的操作和/或需要完成的更新。 这会导致文件保留,并且永远不会自行删除。 什么原因导致冲突? 根据我们的经验,如果用户以非常快的速度手动点击许多不同插件上的“立即更新”,我们就会看到这种情况发生。 默认情况下,WordPress会按顺序错开更新,但如果连接中甚至有一个ms的延迟,则可能会导致突然冲突,从而触发维护模式一直卡在那里。

为确保不会发生这种情况,您可以在WordPress得插件管理列表(已安装的插件)上方点击“可用更新”,然后从批量操作下拉列表中选择“更新”。 然后单击“应用”。这将按顺序更新,就不太可能发生更新冲突。

WordPress维护模式 – 故障排除和自定义页面教程插图1

批量更新插件

防止这种情况发生的另一个建议是及时更新插件。 不要等待过长的时间才去尝试更新插件的新版本,出于安全的考虑我们也应该尽可能地对已安装的插件执行更新。 如果真的同时有30多个插件(只是大个比方)需要更新,最好逐个更新它们,以确保您的网站没有任何中断。

如何快速退出WordPress维护模式

如果您的WordPress网站目前卡在维护模式,您只需删除已创建的.maintenance文件,网站即可恢复正常。。

Step 1 -第一步是通过FTP/SFTP登录您的WordPress网站服务器。

Step 2导航到WordPress站点和/或公共HTML文件夹的根目录, 这是通常包含wp-config.php文件的文件夹。 然后,找到并删除.maintenance文件。

wordpress-maintenance-mode-file

WordPress维护模式临时文件.maintenance

删除后,您可以在浏览器中刷新您的网站,您的网站应该恢复正常。如果还是不能够正常访问,建议您清除WordPress站点上的缓存,参考阅读文章《如何清除/刷新DNS缓存(Windows,Mac,Linux)》。

您可以通过多种方式扩展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维护模式 – 故障排除和自定义页面教程插图3

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();
 }

使用WordPress维护模式插件

如果您不熟悉编辑代码或需要更多内容,您还可以通过使用一些免费和高级插件来实现更高阶的WordPress维护模式提示页面。

1. WP Maintenance Mode

WP Maintenance Mode是为您的WordPress网站提供快速简便的维护模式通知的下载量最高的插件之一。 它完全免费,由知名的网页设计博客Designmodo的团队开发。 使用该插件你可以在你的WordPress处于维护模式时向访客展示一个非常友好的界面,如下方截图所示。 它适用于Multisite,但重要的是要注意它可能与部分缓存插件不兼容。

wp-maintenance-mode-wordpress-plugin-2

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维护模式页面支持良好的插件。 

coming-soon-page-and-maintenance-wordpress-plugin-1

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维护模式页面。 只需激活插件,在维护模式下只有管理员才能看到该网站。 如果你想要一些免费,快速和轻量级的插件,这个插件无疑是最佳选择。

Slim-Maintenance-Mode

WordPress维护页面插件-Slim Maintenance Mode

该插件相对比较小众一些,目前的安装量远不如前面几个插件,但目前的得到不错的好评。您可以从WordPress插件市场下载Slim Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:

  • 小巧,简单,轻便
  • 无需担心额外设置,只需激活启用即可
  • 适用于任何WordPress主题
  • 后端消息提醒您知道它处于活动状态
  • 503 HTTP标头响应
  • 兼容主流缓存插件

4.Maintenance Mode

Maintenance Mode是由Lukas Juhas开发的WordPress插件,是轻量级插件和默认包含的WordPress维护模式的核心。 该插件是完全免费的,使用wp_die() 函数,并可以通过启用WYSIWYG编辑器优化页面。

maintenance-mode-wordpress-plugin

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的团队开发维护。

minimal-coming-soon-and-maintenance-mode-for-wordpress-plugin-1

WordPress维护页面插件-Minimal Coming Soon & Maintenance Mode

它目前有超过5万+个安装,5星满分好评。 您可以从WordPress插件主页下载Minimal Coming Soon & Maintenance Mode,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:

  • 兼容所有WordPress主题和插件
  • 能够更改您看到的每个元素,包括背景颜色,封面图像,字体等。
  • 在激活之前预览维护页面
  • 兼容缓存插件
  • 支持自定义登录URL
  • 仅对未登录的用户可见
  • 支持Google Analytics
  • 谷歌字体

6. Elementor

您还可以使用Elementor之类的页面构建器插件来设计自己的WordPress维护模式页面和即将推出页面。 事实上,采用这种办法,你可以轻松地按照自己的想法定制这类页面。

elementor-wordpress-page-builder

WordPress页面创建插件- Elementor

它目前拥有超过90万+个安装,且还是5星评分。 点击Elementor直接下载插件安装包,或者在WordPress仪表板“插件”-“安装插件”下搜索安装。 它的一些附加功能包括:

  • 100%可定制和设计
  • 提供登录,订阅,表单,倒计时,社交共享按钮和其他小部件
  • 访问角色控制
  • 支持维护模式和即将推出页面
  • 对搜索引擎友好的HTTP 200和HTTP 503状态码
  • 12个设计师精选设计的维护模式页面和即将推出页面模板

7.利用ManageWP提供的WP维护模式

ManageWP是一种从一个仪表板管理所有WordPress站点的服务,还包括维护模式选项。 它们有一些很棒的默认模板,轻松切换你喜欢的样式,且还可以编辑HTML。

managewp-maintenance-mode

ManageWP提供的维护模式功能

小结

如您所见,WordPress核心包含的WordPress维护模式非常实用。 但WP自带的维护模式提示页面实在有点反人类,你可以通过扩展和定制,以匹配你的WordPress网站设计风格,提升用户体验。 您也可以自定义维护提示消息,以便访问者和客户了解当前无法访问的原因。当然如果您陷入维护模式,通过我们前面的教程你也应该清楚如何快速恢复您的网站访问。

评论留言

唇枪舌剑 (1)

  • ᕕ(ᐛ)ᕗ变身!的头像

    ᕕ(ᐛ)ᕗ变身!

    2019.6.14 00:06

    学习了。

    回复