当前位置:首页原创文章B2美化解决B2主题数字缩写函数中 “Undefined array key 5” 的警告问题

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

这个问题在之前也出现过,因为之前启用了注销插件,以为是这个插件导致的问题,关闭该插件后这几天 有出现这个问题了,所以今天就好好的检查了一下,最后发现是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;
}

修复后的完整代码:

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

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

方案二:

通用解决方案(适用于所有 Undefined array key 警告),站长简称治标不治本的方案,不推荐,可在wp-config.php中添加:

温馨提示:

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

文章链接:https://www.jitheme.com/7977.html

更新时间:2026年03月14日

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@jitheme.com,我们将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读极(子)主题网络服务协议

给TA打赏
共{{data.count}}人
人已打赏
B2美化

【原创】短代码实现文章快速嵌入B站视频-WordPress主题教程美化

2026-1-10 11:30:35

大图列表

蔬果去哪里了?

2024-3-28 21:12:11

购物车
优惠劵
有新私信 私信列表
搜索