WordPress 站点 PHP 7.4 兼容性改造指南

WordPress 的版本更新带来了更高效的性能和安全性,但也有可能导致旧版 PHP 环境(如 PHP 5.x 或 PHP 7.x)中的某些函数或功能不再兼容。为了确保你的 WordPress 站点能够与 PHP 7.4 正常运行,并充分利用 PHP 7.4 带来的性能提升,可能需要对站点进行一些兼容性改造。

在本指南中,我们将介绍如何对 WordPress 站点进行 PHP 7.4 兼容性改造,包括代码兼容性检查、插件与主题的更新、PHP 错误的处理等步骤。

目录

  1. 准备工作
  2. 检查当前 PHP 版本
  3. 升级 WordPress 核心
  4. 检查和升级插件与主题
  5. 检测弃用函数和特性
  6. 启用错误日志和调试模式
  7. 修复兼容性问题
  8. 性能和安全性优化
  9. 总结

1. 准备工作

在对 WordPress 站点进行 PHP 7.4 兼容性改造之前,建议做以下准备:

  • 备份站点:确保你有完整的文件和数据库备份,以防万一出现问题。
  • 确保 PHP 版本已升级:确保你的服务器已成功安装 PHP 7.4,并且在 phpinfo() 中确认它是当前运行的版本。

你可以使用以下命令检查服务器的 PHP 版本:

php -v

如果你使用的是 cPanel、Plesk 或其他控制面板,也可以在界面中查看 PHP 版本。


2. 检查当前 PHP 版本

通过 phpinfo() 或 WordPress 后台检查 PHP 版本。WordPress 4.9 及之后的版本已经开始推荐 PHP 7.4 以上的版本。如果你使用的版本过低,升级 PHP 是非常重要的。

在 WordPress 后台,你可以查看当前 PHP 版本:

  • 进入 仪表盘 > 网站健康
  • 查看“服务器”标签下的 PHP 版本。

3. 升级 WordPress 核心

PHP 7.4 在处理某些功能时有一些变化,尤其是对于过时或不推荐使用的功能。在对 WordPress 站点进行 PHP 7.4 兼容性改造时,首先要确保 WordPress 核心已更新到最新版本。

升级步骤:

  1. 检查当前 WordPress 版本
    • 在 WordPress 后台,进入 仪表盘 > 更新,查看当前版本。
  2. 执行升级
    • 更新 页面,点击 现在更新 按钮来安装最新的 WordPress 版本。
  3. 更新完成后
    • 升级后,重新检查站点是否正常工作,并确保所有插件和主题都已更新。

4. 检查和升级插件与主题

插件和主题往往是 PHP 版本不兼容的主要源头。确保它们与 PHP 7.4 完全兼容,避免出现功能异常。

步骤:

  1. 检查插件与主题的兼容性
    • 访问 WordPress 后台,进入 插件外观 > 主题,查看是否有任何插件或主题提示与当前 PHP 版本不兼容。
    • 如果有插件或主题未更新,访问插件或主题的官方网站或 WordPress 插件库,查看其支持的 PHP 版本。
  2. 升级插件和主题
    • 确保所有插件和主题都已升级到最新版本。点击 插件 > 更新,安装可用的插件更新。
    • 对于有特定版本兼容问题的插件,检查是否有替代插件或联系插件开发者获取支持。
  3. 检查不兼容的插件
    • 如果某些插件与 PHP 7.4 不兼容,尝试禁用这些插件,并寻找更新版本或替代插件。
  4. 更新第三方主题
    • 检查第三方主题(如果使用了自定义主题或购买的主题)是否支持 PHP 7.4。如果不支持,联系主题作者获取更新。

5. 检测弃用函数和特性

PHP 7.4 引入了许多弃用的功能,包括某些函数的弃用和对某些语言特性的优化。你可以通过启用 PHP 错误日志来检查是否有任何已弃用的函数或特性。

常见弃用的功能:

  1. create_function():此函数已弃用,建议改用匿名函数。
  2. each():在 PHP 7.4 中已移除,改用 foreach 循环代替。
  3. 短数组语法 (array()):使用 [] 替代 array()

启用错误日志:

编辑 wp-config.php 文件,启用 WordPress 调试模式,以便捕获所有弃用警告和错误。

define( 'WP_DEBUG', true );  // 开启调试模式
define( 'WP_DEBUG_LOG', true );  // 将错误记录到 wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false );  // 不在页面上显示错误

启用调试后,检查 wp-content/debug.log 文件中的错误和警告,特别是与已弃用函数或特性相关的内容。


6. 修复兼容性问题

根据调试日志,你可能会发现一些与 PHP 7.4 不兼容的函数或语法。你可以根据日志中的提示,修改相应的代码或使用替代函数。

示例:

  1. 替换 create_function()
    PHP 7.4 不推荐使用 create_function(),改用匿名函数:

    // 原代码
    $func = create_function('$a', 'return $a + 1;');
    echo $func(5);
    
    // 修改后的代码
    $func = function($a) { return $a + 1; };
    echo $func(5);
    
  2. 替换 each()
    each() 在 PHP 7.4 中已经移除,应该改用 foreach

    // 原代码
    while (list($key, $value) = each($array)) {
        echo "$key => $value\n";
    }
    
    // 修改后的代码
    foreach ($array as $key => $value) {
        echo "$key => $value\n";
    }
    
  3. 更新数组语法
    PHP 7.4 推荐使用短数组语法 [],而不是 array()

    // 原代码
    $array = array(1, 2, 3);
    
    // 修改后的代码
    $array = [1, 2, 3];
    

7. 性能和安全性优化

在完成兼容性改造后,进行一些性能和安全性优化,以确保站点的稳定性和效率。

性能优化:

  1. 开启 OPcache
    PHP 7.4 对 OPcache 的支持进一步优化,确保 OPcache 在 php.ini 中启用:

    opcache.enable = 1
    opcache.memory_consumption = 128
    opcache.interned_strings_buffer = 8
    opcache.max_accelerated_files = 4000
    opcache.revalidate_freq = 60
    
  2. 使用合适的缓存插件
    安装并配置缓存插件,如 W3 Total CacheWP Super Cache,以提升站点加载速度。

安全性优化:

  1. 更新数据库用户权限:确保数据库用户仅具有必要的权限,防止潜在的安全漏洞。
  2. 定期备份:使用可靠的备份插件(如 UpdraftPlus)进行定期备份,以便在发生问题时快速恢复。

8. 总结

升级到 PHP 7.4 是提高 WordPress 性能和安全性的关键步骤。通过逐步升级 WordPress 核心、插件和主题,并检查与 PHP 7.4 相关的弃用特性,你可以确保站点的正常运行。

  • 备份站点和数据库。
  • 升级 WordPress 核心和插件。
  • 检查并修复弃用的函数和特性。
  • 优化性能和安全性。

随着 PHP 7.4 的推出,继续跟进 WordPress 和插件的兼容性是确保站点稳定运行的必要步骤。