编写If Else PHP脚本实现WordPress数据库连接异常时加载静态页面
解决WordPress数据库宕机时显示自定义页面的方案
我来帮你搞定这个头疼的问题——当MySQL数据库频繁宕机时,让WordPress自动切换到你准备的友好静态页面,而不是默认的“Unable to connect to Database”生硬提示,这样能给用户好得多的体验。
下面是具体的修改方案,直接替换你的WordPress根目录下的index.php内容即可(记得先备份原文件!):
<?php // 加载WordPress配置文件,获取数据库连接参数 require_once(__DIR__ . '/wp-config.php'); // 手动尝试建立数据库连接 $db_connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // 判断连接状态 if (!$db_connection) { // 连接失败:加载自定义静态页面,替换成你实际的文件路径 require_once(__DIR__ . '/custom-maintenance.html'); exit; // 终止后续代码,避免触发原WordPress错误提示 } // 连接正常:关闭手动创建的连接(WordPress后续会自行建立连接) mysqli_close($db_connection); // 继续执行WordPress原有的加载流程 require(__DIR__ . '/wp-blog-header.php'); ?>
关键细节说明:
- 配置复用:先引入
wp-config.php是为了直接用里面的数据库常量(DB_HOST、DB_USER等),不用重复写连接信息,后续数据库配置变更时也不用改这段代码; - 连接检测:用
mysqli_connect手动尝试连接,失败时会返回false,我们以此作为判断依据,比等WordPress抛出错误更前置; - 自定义页面:把
custom-maintenance.html替换成你实际准备的静态文件路径——比如可以做一个简单页面,告诉用户“网站临时维护中,稍后回来”,搭配一些温和的样式; - 流程终止:连接失败时用
exit停止后续代码,确保不会触发原WordPress的错误提示; - 连接清理:连接正常时关闭手动创建的连接,避免和WordPress后续自动建立的连接产生冲突。
测试建议:
你可以临时修改wp-config.php里的数据库密码(改成一个错误的),刷新网站看看是否能正常加载你的自定义页面,测试没问题后再改回正确密码。
内容的提问来源于stack exchange,提问作者Brian K Buttrey
相关产品推荐
相关产品推荐

