2020最新Siteground Warning: count(): Parameter must be an array or an object that implements Countable问题解决

2020最新Siteground Warning: count(): Parameter must be an array or an object that implements Countable问题解决

Warning: count(): Parameter must be an array or an object that implements Countable in /wp-content/themes/wptheme/cmb/init.php on line 746

最近多个客户反映自己老老实实更新,怎么网站突然出现错误代码,一开始以为是网站被挂马了,结果去源代码查看没有挂马迹象,然后认真看了下报错提示count(),

这个是php7.1以后版本中才会出现的问题。

报错原因官方解答

count() 的方法原型中 $array_or_countable 参数,需要是数组或者 Countable 对象(Countable 接口能让对象可以被用于count函数的能力)。在 PHP 7.2 中对于 count() 有一个新增的变更,

具体可参考官网文档【php.net/manual/en/function.count.php#refsect1-function.count-changelog】

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

也就是说在 7.2 版本中当无效的类型传递给 $array_or_countable 参数时,count() 会产生警告,所以我们可以知道,上面提到的报错应该是传了无效的类型给 count() 才导致发出的警告。

 

解决方案:

一、Siteground后台将PHP版本设置回之前的版本,如果网站是几年前做的建议直接用方案一

二、修改主题对应代码

将746行代码

elseif ( is_array( $meta_box['pages'] ) && count( $meta_box['pages'] === 1 ) )

替换成

elseif ( is_array( $meta_box['pages'] ) && count( $meta_box['pages'] ) === 1 )

 

 

 

 

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"Yongwp.com",如遇到无法解压的请联系管理员!
WordPress外贸建站 » 2020最新Siteground Warning: count(): Parameter must be an array or an object that implements Countable问题解决

查看优质的WP整站案例

立即查看 联系我们