最近和大胡子在紧锣密鼓准备新的企业主题,这是一款可以完全自定义页面模块的主题,先给大家看下定制出来的首页,这是一个挖掘机的官网,你换一下图片和布局,也可以定制出其他类型的官网。😎
本来周一就准备发了,但是因为完全的自定义,所以我们需要更多时间去去做个钟测试,其中的一项就是看看在各个 PHP 版本中有没有问题。
然后就发现 #WPJAM Basic# 的一个重大 bug,就是后台文章和分类列表的一些操作无效了,怎么点击保存都无效,经过一个我下午的 Debug 这是因为 PHP 8 对 is_callable()
函数的一个改动造成的。
简单说因为 PHP 8 不再允许通过静态调用的方式去调用非静态方法。因此 is_callable()
在检查一个类名与非静态方法时将返回失败(应当检查一个类的实例)。具体看下面这个例子就大概能够明白了:
class Test{
public function method1() { }
public static function method2() { }
}
// PHP 8 之前
var_dump(is_callable(['Test', 'method1'])); // bool(true)
var_dump(is_callable(['Test', 'method2'])); // bool(true)
// PHP 8 之后
var_dump(is_callable(['Test', 'method1'])); // bool(false)
var_dump(is_callable(['Test', 'method2'])); // bool(true)
var_dump(is_callable([new Test, 'method1'])); // bool(true)
所以在主题发布之前,我首先就要发布一个 #WPJAM Basic# 的新版来解决这个,大家也可以更新,如果你还有 PHP 8 版本兼容的问题,也可以向我们提出,虽然我已经做了很多的兼容了。
© WordPress果酱 / RSS 订阅 / 长期承接 WordPress 项目