在wordpress的说明文档中,提醒用户时刻保持wordpress的最新版本。所以在大批量的更新后,随手升级了5.0。然后问题来了……
首先问题在PHP版本上,之前使用的5.x版本被wordpress放弃,升级到7.3版本。虽然暂时不升级可能也没啥问题,最多就是报报错而已。但为了以后方便,该升级还是升级好了。
问题是怎么升级啊!在目前的虚拟空间环境下,要升级操作系统的唯一办法是……找客服。好在客服给力,给我升级了,然后问题又有了。
pagebar是我常用的一个wordpress插件,简单小巧好用。不过这个插件已经很久没有更新了。不更新不是问题,问题是现在的pagebar插件不支持PHP7.x。见鬼了,只能自己改。
来自后面一段时间的更新,关于pagebar插件,我最终还是放弃了,换用了现在仍然在更新的插件。所以下面的信息不再适用,仅做存档。
报错信息是:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; PagebarOptions has a deprecated constructor in \wp-content\plugins\pagebar\pagebar_options.php on line 5
Deprecated级的报错不是致命的,但总是显示也不好看不是,而且现在不改以后早晚要改。首先是报错原因:
PHP OOP使用和类名相同的方法名作为构造方法,是 PHP4 的写法,PHP 5中同时支持__construct和类同名方法,但__construct方法具有优先性。
PHP 7开始使用和类名相同的方法名作为构造方法会报E_DEPRECATED级别的错误,提示在未来版本中会彻底抛弃类同名方法作为构造函数。但程序仍然会正常执行。
纠正方法也很简单:
<?php
class a{
function a(){
}
}
?>
更改成
<?php
class a{
function __construct(){
}
}
?>
找到报错的对应位置,按照上面的方式更改就行了。
升个级真TM麻烦。
好吧,更新,问题还有几个
Warning: A non-numeric value encountered
Parameter must be an array or an object that implements Countable
这些都是PHP升级后语法规则变得更加严格导致以前可以兼容的错误现在都以warning的形式报出来了。这些问题的修复需要根据实际情况,还需要一点php功底。这里就不赘述了。

很久都没有更新了,都2018年了。今天公司组织下乡扶贫,我本来是拒绝的。经过强烈的申请留守公司看家,保证人在公司在无果后,我还是在这个周末被拽上了车。路途遥远,一早出发下午4点才到县城。凉山彝族自治州雷波县,县城给我的感觉还可以,在大搞基础建设,整个县城虽然面积不大又地处山顶,但发展速度肉眼可见。很难想象这里会是国家贫困县,经过询问后得知,果然不是这里,还要继续往深山处进发。今天就在这里落脚了,明早继续出发。诶,听说最终目的地是一个村子的学校,我们送了些书本电脑过来。一是希望他们用得上,二是就当久违的远行了。