Anything Order by Terms报: Invalid argument supplied for foreach() in

吾爱分享 建站运维 编程开发Anything Order by Terms报: Invalid argument supplied for foreach() in已关闭评论432字数 726阅读2分25秒阅读模式

Anything Order by Terms报: Invalid argument supplied for foreach() in

问题背景

更新了Anything Order by Terms到v1.3.6版本后在文章分类目录页面会报这个错误Invalid argument supplied for foreach文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

Anything Order by Terms报: Invalid argument supplied for foreach() in文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

原因分析

谷歌翻译解释为“...中的foreach()提供了无效的参数”,也就是说里面循环的数据不是一个有效的数组。文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

解决办法

1.打开文件 wp-content/plugins/anything-order-by-terms/modules/base/class.php文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

2.在282行上面添加一行代码文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

if(is_array($q)){

Anything Order by Terms报: Invalid argument supplied for foreach() in文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

3.在第308行下面添加一个  } 文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

Anything Order by Terms报: Invalid argument supplied for foreach() in文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

4.或者如果你也用Anything Order by Terms v1.3.6版本文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

可以直接下载我修改好的class.php,然后上传至你的wp-content/plugins/anything-order-by-terms/modules/base/目录下解压缩覆盖即可。文章源自 吾爱分享 吾爱分享网-https://www.wuaishare.cn/140.html

2020.1.9 如非必要的站,本人已不再使用此插件了,原因是此插件和很多其他主题/插件有冲突,应该是插件设计上的缺陷导致的。

通用解决方案

在php中使用foreach循环遍历时报Invalid argument supplied for foreach()错误,是因为循环的数据不是一个有效的数组。

因此我们只要在foreach之前判断一下数据源即可:

if(is_array($data)){foreach($data as $value){...}}

或者我们先定义一个空数组,然后为数组赋值,再进行foreach操作:

$data = array();
$data = ... ; //数组赋值操作;
foreach($data as $value){...}
吾爱分享