问:我按教程在wp-config.php里加了调试代码,结果网站直接白屏,连后台都进不去了,怎么办?
答:别慌,这八成是代码加错了位置,wp-config.php这个文件非常“娇气”,所有调试代码必须放在文件末尾的“That‘s all”提示之前,并且前面不能有多余空格或换行,你现在先通过FTP或主机文件管理器,把刚加的那几行删掉,恢复原样,网站就能回来,改这个文件前,永远先下载一份原文件备份。
问:到底怎么正确开启WordPress调试模式?我加的代码为啥不生效?
答:你大概率把define(’WP_DEBUG‘, true);写成了WP_DEBUG=true——这是纯PHP代码,必须用define函数包裹,且结尾要带分号,正确写法是:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
其中WP_DEBUG_LOG会把错误记录到/wp-content/debug.log文件里,WP_DEBUG_DISPLAY设成false是为了不让错误直接显示在网页上(避免白屏),改完保存后,刷新前台页面,再去后台看debug.log,那才是真正的错误信息。
wp-config.php一改就白屏?5个新手最常踩的调试坑,一次说透
问:我加了调试代码后,网站能打开,但页面底部出现一堆红色警告和乱码,怎么去掉?
答:这说明你开启了“显示错误”功能,但没关掉浏览器端的输出,新手最容易犯的错是只写了define('WP_DEBUG', true),没写WP_DEBUG_DISPLAY false,现在只要把WP_DEBUG_DISPLAY设为false,警告就不会显示在网页上,只会写进log文件,如果已经有一堆乱码显示了,先改代码,再清一下浏览器缓存和服务器缓存(比如用了缓存插件的话)。
问:我想改网站标题和logo,但调试模式没关,改完保存后前台没变化,是缓存还是debug的锅?
答:两者都可能导致,但首先确认:调试模式不会阻止你修改标题和logo,它只负责显示错误,如果改了没变化,先看主题设置里有没有“自定义”栏目,通常在“外观→自定义→站点标识”里改logo和标题,如果改了还不行,大概率是缓存——清理插件缓存、浏览器缓存,或者如果是CDN,去CDN后台刷新,如果主题本身硬编码了标题,那得改主题文件的header.php,但新手不建议直接动代码,换个带自定义选项的主题更省心。
问:装主题或插件时提示“致命错误”,甚至整个网站打不开,这和wp-config.php调试配置有关系吗?
答:有关系,而且关系很大!很多新手一遇到装插件出错,就乱调wp-config.php里的WP_MEMORY_LIMIT(内存限制),结果调太高或语法错,直接白屏,正确做法是:先把调试模式开起来,就能看到具体哪行代码出错,如果是插件导致的致命错误,用FTP进入/wp-content/plugins/文件夹,把刚装的那个插件文件夹重命名(比如加个_old),网站就能恢复,调试日志里会明确告诉你“某某文件第几行出错”,你再用那个信息去查插件开发者文档或问客服。
问:备份和搬家时,wp-config.php里的调试配置要不要改?我直接复制网站文件行吗?
答:千万别直接整个文件夹拖走!搬家前,必须把wp-config.php里的调试代码全部删掉或注释掉,否则新服务器如果环境不同(比如PHP版本不同),调试日志会疯狂生成,甚至暴露数据库密码(虽然数据库密码在上面,但错误日志可能显示数据库连接信息),搬家正确步骤:1)导出数据库(用phpMyAdmin);2)下载所有文件;3)在新服务器上导入数据库;4)改wp-config.php里的数据库名、用户名、密码、主机地址(一般默认localhost);5)再把调试模式关掉,用文本编辑器打开wp-config.php,检查里面有没有多余的空格或隐藏字符——那些也会导致“奇怪”的白屏。
问:我按网上文章加了define('WP_ALLOW_REPAIR', true)想修复数据库,结果网站直接白屏了,这算什么调试配置错误?
答:这又是新手常踩的坑!WP_ALLOW_REPAIR是数据库修复开关,但它是“一次性”的,用完后必须马上删掉,如果你加了它没删,然后访问/wp-admin/maint/repair.php,修复完成后如果没移除这一行,以后每次刷新后台都可能触发修复界面,甚至直接白屏,现在解决办法:FTP删掉这一行,再重新访问后台,这个功能和调试模式没直接关系,但一旦报错,调试日志会帮你定位是数据库问题还是代码问题。
问:我什么代码都没加,但网站突然出现“已超过最大执行时间”错误,和之前调的调试配置有关吗?
答:有可能!如果你之前调试时把WP_DEBUG开着,debug.log文件会不断记录,如果服务器磁盘满了或日志文件超大,就会拖垮PHP执行速度,所以调试完事,一定要关掉WP_DEBUG,只保留WP_DEBUG_LOG也行(但建议全关),如果是某个插件卡死,用FTP禁用插件(把插件文件夹改名),再检查wp-config.php里是否有WP_MAX_EXECUTION_TIME之类的临时设置——新手最容易在调试时乱加常量,但忘了删。
问:我想用wp-config.php设置多语言站点,但按教程改了WPLANG常量后,后台还是英文,调试模式也没报错,为什么?
答:WPLANG在WordPress 4.0以后就不推荐用了,现在必须在“设置→常规→站点语言”里选,但如果你非要在wp-config.php里强制,语法是这样的:
define('WPLANG', 'zh_CN');
但前提是:/wp-content/languages/目录下必须有对应的中文语言包文件,否则设置无效,调试模式不会报错,因为它不认为这是错误,只是“不符合预期”,如果改完没反应,先检查语言包是否下载完整(后台弹窗点“更新”),或者直接把主题和插件也装上对应语言包,多语言的正确姿势是用插件(比如Loco Translate或Polylang),而不是靠wp-config.php硬改。
问:我朋友说调试模式可以帮我查“侧边栏不显示”的问题,但开了日志后,日志文件是空的,怎么排查?
答:日志为空不代表没问题,可能是你的PHP错误被服务器吃掉了(比如display_errors被host设为关闭),先检查wp-config.php里的定义顺序——WP_DEBUG必须在WP_DEBUG_LOG之前,很多人顺序反了,导致日志没生效,侧边栏不显示一般是主题的sidebar.php没被调用,或者小工具区的页面id没匹配上,你可以在主题的functions.php里临时加一句var_dump(is_active_sidebar('sidebar-1')),然后刷新前台,看输出是true还是false——但这是代码调试,新手慎用,更简单的办法:换到默认主题(比如Twenty Twenty-Four),如果是默认主题显示侧边栏,那就是你原主题的小工具设置丢了,去“外观→小工具”重新拖一下就行,这跟wp-config.php半毛钱关系都没有,别陷入“什么事都往调试配置上想”的坑。



发表评论