手把手教你实现WordPress维护模式(含插件与无插件方案)

本文详细讲解了在WordPress网站中启用维护模式的两种方法:一种是通过添加自定义PHP代码到子主题的functions.php文件实现;另一种是使用LightStart插件。文章提供了完整的代码示例和关键步骤,适用于进行重大代码或数据库更改时屏蔽前端访客访问。

WordPress维护模式(使用插件与不使用插件)

当我们需要对WordPress站点进行重大更改(自定义代码和/或数据库更改)时,就需要启用WordPress维护模式,这样网站的前端就不会对访客开放。

不使用插件的WordPress维护模式

将以下代码添加到子主题的 functions.php 文件中。 如果你没有子主题,可以轻松创建一个。请参考这篇文章

使用这段代码,网站(包括管理面板和前端)将仅对管理员可用。其他任何用户都会看到维护模式消息。

启用WordPress维护模式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * 维护模式
 */
function wp_maintenance_mode() {

	if ( ! current_user_can( 'administrator' ) ) {
		wp_logout();
	}

	wp_die( '<h1>网站正在进行计划维护</h1><br />请稍后再来查看。' );
}

/**
 * 检查当前页面是否为登录页面
 *
 * @return bool
 */
function is_wp_login() {
	if ( isset( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) {
		return true;
	}

	return false;
}

if ( false === is_user_logged_in() && false === is_wp_login() ) {
	add_action( 'get_header', 'wp_maintenance_mode' );
} else {
	if ( ! current_user_can( 'administrator' ) ) {
		add_action( 'admin_init', 'wp_maintenance_mode' );
	}
}

禁用WordPress维护模式

只需注释掉 add_action 代码行(或移除整个 if 代码块):

1
2
3
4
5
6
7
if ( false === is_user_logged_in() && false === is_wp_login() ) {
	//add_action( 'get_header', 'wp_maintenance_mode' );
} else {
	if ( ! current_user_can( 'administrator' ) ) {
		//add_action( 'admin_init', 'wp_maintenance_mode' );
	}
}

使用插件的WordPress维护模式

你可以使用很多插件。 在本教程中,我们使用 LightStart – Maintenance Mode, Coming Soon and Landing Page Builder

  1. 安装并激活该插件。
  2. 你可能希望使用许多可用的选项:菜单 ⟶ 设置 ⟶ LightStart
  3. 但最核心的设置是: LightStart
  4. 效果如下: LightStart – 维护模式

记得清除缓存(如果有的话),否则插件可能无法工作。

Christos Pontikis | 企业家 | 全栈开发人员 | MediSign Ltd. 创始人 拥有超过15年设计和开发Web应用程序的专业经验。在管理(Web)项目方面也经验丰富。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计