You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 7.3环境下WordPress站点出现非数值错误,求代码修复方案

修复WordPress中"A non-numeric value encountered"警告的方法

这个警告是PHP 7.1+引入的严格类型检查带来的问题——问题出在$num_words变量被传入了非数值类型(比如字符串、null或者布尔值),导致$num_words + 1这个数值运算触发了警告。

要直接修改formatting.php第3378行的代码,你需要确保$num_words被强制转换为整数后再参与运算,具体修改如下:

把原代码:

$words_array = preg_split( "/[\n\r\t ]+/", $text, $num_words + 1, PREG_SPLIT_NO_EMPTY );

修改为:

$words_array = preg_split( "/[\n\r\t ]+/", $text, (int)$num_words + 1, PREG_SPLIT_NO_EMPTY );

为什么这样有效?

(int)强制类型转换会把任何非整数的$num_words转为合理的整数:

  • 如果是字符串型的数字(比如"5"),会转为对应的整数5;
  • 如果是null、空字符串或者非数字字符串,会转为0;
  • 如果是布尔值,true转为1,false转为0。

这样$num_words + 1就变成了合法的数值运算,警告自然就消失了。

额外建议

虽然修改核心文件能快速解决问题,但更稳妥的做法是找到调用wp_trim_words()函数的地方(可能是你的主题或插件代码),确保传入的$num_words参数是整数类型。不过如果暂时定位不到调用点,上面的修改可以作为临时有效的解决方案。

内容的提问来源于stack exchange,提问作者user3612498

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:19:10