WordPress 4.9.5出现「无法将空字符串分配给字符串偏移量」警告求解决
解决WordPress 4.9.5中“无法将空字符串分配给字符串偏移量”警告的方案
我之前帮不少用户排查过这个WordPress 4.9.x版本的常见警告问题,刚好能给你明确的解决步骤,先拆解下问题根源:这个警告是因为某个脚本(主题或插件的)在注册/加载时,传递了空的$handle参数,导致WP_Scripts类在第426行处理时,试图给一个空字符串的数组偏移量赋值,触发了PHP警告。
下面是按优先级排序的解决方法:
优先升级WordPress版本(强烈推荐)
WordPress 4.9.5是多年前的旧版本,早已停止安全维护,不仅有这个兼容性警告,还存在潜在的安全漏洞。后续的WordPress 5.x及以上版本已经优化了WP_Scripts的参数校验逻辑,从根源上修复了这个问题。操作前记得先备份网站文件和数据库,然后直接在后台升级到最新稳定版即可。排查插件问题
- 登录WordPress后台,一次性禁用所有插件,刷新页面看警告是否消失。
- 如果警告消失了,再逐个重新启用插件,每启用一个就刷新页面,找到触发警告的那个插件。
- 针对有问题的插件:尝试更新到最新版本(如果有更新的话),如果更新后还是不行,联系插件开发者反馈问题,或者暂时替换成功能类似的其他插件。
排查主题问题
如果禁用所有插件后警告依然存在,那大概率是当前主题的问题:- 切换到WordPress默认主题(比如和4.9.5匹配的Twenty Seventeen),看警告是否消失。
- 如果确认是主题问题,打开主题的
functions.php文件,查找所有wp_enqueue_script或wp_register_script的调用,检查有没有传递空字符串作为第一个参数(也就是$handle)的情况,比如类似wp_enqueue_script('', get_template_directory_uri() . '/js/script.js')这种错误写法,把空字符串改成合法的handle名称(比如'theme-main-script')即可。
临时修复核心文件(不推荐,仅紧急情况用)
注意:修改WordPress核心文件会在后续版本升级时被覆盖,所以这只是临时应急方案,还是建议从根源解决问题:- 找到文件
/home/bofi9rpybgx8/public_html/stagging/hello/wp-includes/class.wp-scripts.php并打开。 - 定位到第426行,在该行代码之前添加一个判断,确保
$handle不是空字符串:if ( empty( $handle ) ) { return; } - 保存文件后刷新页面,警告应该就会消失了。
- 找到文件
内容的提问来源于stack exchange,提问作者Chaman
相关产品推荐
相关产品推荐

