当前位置:首页教程中心网站教程解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题

解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题

这个问题在之前也出现过,因为之前启用了注销插件,以为是这个插件导致的问题,关闭该插件后这几天 有出现这个问题了,所以今天就好好的检查了一下,最后发现是B2主题中functions文件的“数字缩写”功能有缺陷导致的,所以这里给出了修复代码,使用B2主题的朋友可以看一下

警告信息示例:

解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题插图
解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题插图1
错误代码:

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;
}

代码缺陷总结:
  1. 直接访问$x_array[1][0]$x_parts[$x_count_parts - 1],未校验数组键是否存在;
  2. 函数注释重复定义$num参数,语法不规范;
  3. 未对输入参数做类型校验,空值 / 非数字输入可能引发隐性错误。

修复后的完整代码:

替换原b2_number_format函数为以下代码(核心增加数组键校验,优化参数处理):

替换代码后,刷新网站页面,Undefined array key警告会完全消失。

解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题插图2

方案二:

通用解决方案(适用于所有 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.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读用户协议免责声明

给TA打赏
共{{data.count}}人
人已打赏
网站教程

B2主题新增-认证用户手动添加与取消认证 -B2主题美化教程

2025-12-23 22:20:21

网站教程

绿色标题和分隔线效果的容器 – 子比主题美化

2025-5-23 21:20:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧