这个问题在之前也出现过,因为之前启用了注销插件,以为是这个插件导致的问题,关闭该插件后这几天 有出现这个问题了,所以今天就好好的检查了一下,最后发现是B2主题中functions文件的“数字缩写”功能有缺陷导致的,所以这里给出了修复代码,使用B2主题的朋友可以看一下
警告信息示例:
Warning: Undefined array key 5 in /www/wwwroot/www.muooy.cn/wp-content/themes/b2/functions.php on line 1466
该警告是 PHP 7.4 + 版本的严格语法提示,本质是代码试图访问数组中不存在的键。以 B2 主题的数字缩写函数为例,原代码直接访问数组元素$x_array[1][0],未校验该键是否存在;当数字位数超出预设范围(如万亿级数字),数组拆分后的索引会超出实际存在的键,进而触发警告。
原文件代码:
首先找到触发警告的文件:/wp-content/themes/b2/functions.php,定位到数字缩写函数b2_number_format,原代码如下
/**
* 数字缩写
*
* @param string $num
* @param int $num
*
* @return void
* @author Li Ruchun <lemolee@163.com>
* @version 1.0.0
* @since 2018
*/
function b2_number_format($num)
{
$num = $num === '' ? 0 : $num;
if ($num > 1000) {
$x = round($num);
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return $x_display;
}
return $num;
}
- 直接访问
$x_array[1][0]和$x_parts[$x_count_parts - 1],未校验数组键是否存在; - 函数注释重复定义
$num参数,语法不规范; - 未对输入参数做类型校验,空值 / 非数字输入可能引发隐性错误。
修复后的完整代码:
替换原b2_number_format函数为以下代码(核心增加数组键校验,优化参数处理):
替换代码后,刷新网站页面,Undefined array key警告会完全消失。
方案二:
通用解决方案(适用于所有 Undefined array key 警告),站长简称治标不治本的方案,不推荐,可在wp-config.php中添加:
好啦,教程结束~
文章标题:解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题
文章链接:https://www.muooy.cn/6832.html
更新时间:2026年03月13日
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:305582964@qq.com,我们将第一时间处理!2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读用户协议和免责声明。




