只需代码实现网站建设中的维护模式:告别臃肿的付费插件

当网站没有完全做好之前,很多人不想访客或客户访问浏览自己没有做完的网站,在WordPress后台插件库,有许多”Coming Soon” 和 “Maintenance”的插件可以实现这个功能,安装这些插件之后,当用户访问网站的时候只能看到预设的信息,无法看到网站真实数据信息,前些年我们蓝鲨网络自己也在用这种插件,他们方便快捷,几乎不需要设置,只要启用就能用。

但是最近我发现这类插件逐渐变得臃肿,集成了许多付费功能,比如搭建维护页面的专用编辑器(功能模块不亚于免费版本的Elementor)、集成邮件营销、甚至提供分析工具等。想要实现我原本想要的功能路径十分曲折,像我这种多年的wordpress用户也经常一头雾水,设置了半天还是没有生效,这些功能虽然强大,但往往与维护页面的初衷相背离。

维护页面的初衷其实很简单:在网站建设或维护期间,为用户展示友好的信息提示,并避免展示不完整的内容。大多数时候,我们只需要一个简单的页面,提示用户网站正在维护中,最多加一张图片即可。

最近实在受不了,就自己用代码写了一个这种功能,通过代码实现一个极简的 Coming Soon 和 Maintenance 功能。这种方法不仅高效,而且灵活,特别是对于那些已经使用页面编辑器(例如 Elementor古腾堡编辑器)的用户来说,完全不需要额外的插件或付费功能。

为什么避免使用臃肿的插件?

市面上的很多 Coming Soon 和 Maintenance 插件的确提供了一些额外功能,但也带来了如下问题:

  1. 功能过于复杂:不必要的功能会占用资源,影响网站性能。
  2. 付费限制:很多插件的高级功能需要付费订阅,比如解锁模板、添加品牌元素等。
  3. 维护成本高:插件更新频繁,可能引入兼容性问题或潜在安全隐患。

如果你只需要一个简单的维护页面,没有必要为这些功能付费或引入额外的复杂性。

用代码实现极简的 Coming Soon 功能

以下是完整的代码逻辑,它实现了以下功能:

  • 管理员可以正常访问网站,不受影响。
  • 普通用户被引导到一个指定的维护页面。如果没有找到指定页面,显示一个默认的简单 HTML 页面。

代码实现

将以下代码添加到主题的 functions.php 文件中:

function lansha_simple_coming_soon() {
// 检查当前用户是否为管理员
if (current_user_can('manage_options')) {
return; // 管理员可以正常访问网站
}
// 根据页面标题获取 "Maintenance" 页面
$maintenance_page = get_page_by_title('Maintenance');
if ($maintenance_page) {
$maintenance_url = get_permalink($maintenance_page->ID);
// 如果当前访问的页面不是 "Maintenance",重定向到该页面
if (!is_page($maintenance_page->ID)) {
wp_redirect($maintenance_url);
exit;
}
} else {
// 如果找不到 "Maintenance" 页面,显示简单的 HTML 页面
lansha_display_simple_html();
}
}
add_action('template_redirect', 'lansha_simple_coming_soon');
function lansha_display_simple_html() {
// 设置 HTTP 状态码为 503(服务不可用)
http_response_code(503);
// 输出简单 HTML 页面
wp_die(
'<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Coming Soon</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 50px;
background-color: #f4f4f4;
color: #333;
}
h1 {
font-size: 2.5em;
margin-bottom: 20px;
}
p {
font-size: 1.2em;
}
</style>
</head>
<body>
<h1>Coming Soon</h1>
<p>Our website is currently under maintenance. We will be back soon!</p>
</body>
</html>',
'Service Unavailable', 
array('response' => 503)
);
}

功能解读

  1. 指定页面: 如果网站中有一个标题为“Maintenance”的页面,访客会被重定向到该页面。通过 WordPress 的页面编辑器(比如 Elementor 或 古腾堡),可以自由设计页面内容和样式。
  2. 默认页面: 如果找不到“Maintenance”页面,代码会输出一个简单的 HTML 页面,显示友好的“Coming Soon”信息。
  3. 管理员例外: 管理员用户不受此功能影响,可以正常浏览和编辑网站。

使用页面编辑器设计维护页面

如果你的网站使用页面编辑器(如 Elementor 或 古腾堡),可以轻松设计一个维护页面,并设置标题为“Maintenance”。这样,代码会自动识别该页面并引导访客访问它。

通过这种方式,你不仅可以自由定制页面内容,还避免了安装额外插件的麻烦。

优势

  • 轻量化:无需额外插件,避免了资源浪费。
  • 高度灵活:可以自由选择使用默认的 HTML 提示,或者通过页面编辑器设计维护页面。
  • 免费实现:无需支付任何额外费用,特别适合对成本敏感的小型网站或个人博客。
  • SEO 友好:代码默认返回 503 状态码,告诉搜索引擎当前页面暂时不可用,防止错误索引。

总结

如果你也在寻找一种轻量级的 WordPress Coming Soon 功能,或者希望创建一个简洁的 Maintenance 页面,不妨试试本文的代码方案。与那些功能复杂、需要付费的插件相比,这种方式不仅简单高效,还能完全满足基本需求。更重要的是,这种方法让你可以利用已有的工具(如 Elementor 或 古腾堡)定制页面内容,充分发挥 WordPress 的灵活性。

关键词:WordPress Coming Soon、Maintenance 页面、轻量级功能、WordPress 维护模式、Elementor 页面设计

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Back to top button