在部署阿里云服务器的 LNMP 环境时,PHP 的版本用的是 8.0 版,完成 WordPress 网站迁移 后,打开网站首页时,报告主题有错误。
“PHP 致命错误:未捕获错误:调用…wp-content/themes/nana/inc/widgets.php:109中未定义的函数create_function()”
查询原始代码为:
add_action( 'widgets_init', create_function( '', 'return register_widget( "Scenery_Widget_Profile" );' ) );
我这个主题用了多年了,作者后来一直没更新,我理解可能是 create_function() 在PHP8中被弃用了。
如何解决它与 PHP8 的兼容情况?万能的互联网告诉我,可以用一个函数替换代码的 create_function() 部分。
add_action( 'widgets_init', function(){
return register_widget( "scenery_widget_profile" );
}
);
原来从 PHP 7.2 开始,create_function()
函数被认为是过时的,出于安全原因,应该避免使用,建议改用匿名闭包。
但我发现主题中还有许多其他的函数错误,就考虑能否把 PHP 的版本降低为原来的 7.4 版本。
发现宝塔面板是支持“切换PHP版本”的,我们可以安装多个PHP版本,然后通过修改当前站点,指定运行的 PHP 版本。
安装 PHP 7.4 版本
点击“软件商店”,应用搜索“PHP”,选择版本“php-7.4”,点击“极速安装”,即可安装。
选择合适 PHP 版本
点击“网站”,点击列表中网站对应的 PHP 栏目的 8.0 链接,选择 PHP 版本,下拉框中选择“PHP-74”即可。
切换为 PHP 7.4 版本后,网站打开正常。
如果我们在云服务器上安装另外的网站,则可根据主题的情况,选择更高的 PHP 版本,对于网站的安全还是更有保障一些,因为一般来说,官方弃用的函数,多数是有安全漏洞,或容易被恶意使用的。
历史上的今天:
- 2023: 阿里巴巴宣布重组:分拆为六个业务集团,均可独立融资上市(0)
- 2023: 3月30日,国际医师节(0)
- 2022: 微软电脑管家测试版发布(附试用报告)(2)
- 2021: Windows 10 自带输入法如何切换全角/半角状态(0)
得换主题咯
@书签网 换主题总是博主最头疼的事儿。