You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.x不支持花括号数组/字符串偏移语法的修复求助

快速修复PHP 8+下WordPress script-loader.php的字符串偏移量报错

PHP 8.0及以上版本彻底移除了用大括号{}访问字符串偏移量的语法,这就是触发致命错误的核心原因。以下是无需整体升级WordPress的紧急修复方案:

具体修改步骤

  1. 通过服务器文件管理器或FTP,找到路径/home1/xxxxxx/public_html/wp-includes/script-loader.php的文件
  2. 定位到处理TinyMCE初始化的foreach代码块,将所有大括号访问字符串的写法替换为方括号:
    • 把$value{0}改成$value[0]
    • 把$value{strlen( $value ) - 1}改成$value[strlen( $value ) - 1]

修改后的完整代码片段

// Do "by hand" translation from PHP array to js object.
// Prevents breakage in some custom settings.
$init_obj = '';
foreach ( $tinymce_settings as $key => $value ) {
    if ( is_bool( $value ) ) {
        $val       = $value ? 'true' : 'false';
        $init_obj .= $key . ':' . $val . ',';
        continue;
    } elseif ( ! empty( $value ) && is_string( $value ) && (
        ( '{' == $value[0] && '}' == $value[strlen( $value ) - 1] ) ||
        ( '[' == $value[0] && ']' == $value[strlen( $value ) - 1] ) ||
        preg_match( '/^\(?function ?\(/', $value ) ) ) {
        $init_obj .= $key . ':' . $value . ',';
        continue;
    }
    $init_obj .= $key . ':\"' . $value . '\",';
}

$init_obj = '{' . trim( $init_obj, ' ,' ) . '}';

额外提醒

  • 修改WordPress核心文件有被版本更新覆盖的风险,建议先备份原script-loader.php文件
  • 长期来看,还是要尽快将WordPress升级到支持PHP 8.1+的版本(推荐6.0及以上),避免后续出现更多兼容性问题

内容的提问来源于stack exchange,提问作者Merkucio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:07:36