PHP 将我的 WordPress PHP 版本升级到 8.0.25 后,script-loader.php 出现致命错误

问题描述 投票:0回答:0

将我的 PHP 版本从 7.4.33 升级到 8.0.25 后,我无法访问我的 WordPress。

当我尝试访问它时,我看到以下消息:

This page isn’t working
ohayotourism.com is currently unable to handle this request.
HTTP ERROR 500

以下是我的错误日志:

[Sun May 14 03:02:24.330258 2023] [fcgid:warn] [pid 1031:tid 1566] [client 172.68.118.92:33226] mod_fcgid: stderr: PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in /home/makiro0421/ohayotourism.com/public_html/newyork/wp-includes/script-loader.php on line 707, referer: https://ohayotourism.com/disney-viptour/

以下是第707行附近的script-loader.php的样子:

/**
 * Adds inline scripts required for the TinyMCE in the block editor.
 *
 * These TinyMCE init settings are used to extend and override the default settings
 * from `_WP_Editors::default_settings()` for the Classic block.
 *
 * @since 5.0.0
 *
 * @global WP_Scripts $wp_scripts
 */
function wp_tinymce_inline_scripts() {
    global $wp_scripts;

    /** This filter is documented in wp-includes/class-wp-editor.php */
    $editor_settings = apply_filters( 'wp_editor_settings', array( 'tinymce' => true ), 'classic-block' );

    $tinymce_plugins = array(
        'charmap',
        'colorpicker',
        'hr',
        'lists',
        'media',
        'paste',
        'tabfocus',
        'textcolor',
        'fullscreen',
        'wordpress',
        'wpautoresize',
        'wpeditimage',
        'wpemoji',
        'wpgallery',
        'wplink',
        'wpdialogs',
        'wptextpattern',
        'wpview',
    );

    /* This filter is documented in wp-includes/class-wp-editor.php */
    $tinymce_plugins = apply_filters( 'tiny_mce_plugins', $tinymce_plugins, 'classic-block' );
    $tinymce_plugins = array_unique( $tinymce_plugins );

    $disable_captions = false;
    // Runs after `tiny_mce_plugins` but before `mce_buttons`.
    /** This filter is documented in wp-admin/includes/media.php */
    if ( apply_filters( 'disable_captions', '' ) ) {
        $disable_captions = true;
    }

    $toolbar1 = array(
        'formatselect',
        'bold',
        'italic',
        'bullist',
        'numlist',
        'blockquote',
        'alignleft',
        'aligncenter',
        'alignright',
        'link',
        'unlink',
        'wp_more',
        'spellchecker',
        'wp_add_media',
        'wp_adv',
    );

    /* This filter is documented in wp-includes/class-wp-editor.php */
    $toolbar1 = apply_filters( 'mce_buttons', $toolbar1, 'classic-block' );

    $toolbar2 = array(
        'strikethrough',
        'hr',
        'forecolor',
        'pastetext',
        'removeformat',
        'charmap',
        'outdent',
        'indent',
        'undo',
        'redo',
        'wp_help',
    );

    /* This filter is documented in wp-includes/class-wp-editor.php */
    $toolbar2 = apply_filters( 'mce_buttons_2', $toolbar2, 'classic-block' );
    /* This filter is documented in wp-includes/class-wp-editor.php */
    $toolbar3 = apply_filters( 'mce_buttons_3', array(), 'classic-block' );
    /* This filter is documented in wp-includes/class-wp-editor.php */
    $toolbar4 = apply_filters( 'mce_buttons_4', array(), 'classic-block' );
    /* This filter is documented in wp-includes/class-wp-editor.php */
    $external_plugins = apply_filters( 'mce_external_plugins', array(), 'classic-block' );

    $tinymce_settings = array(
        'plugins'  => implode( ',', $tinymce_plugins ),
        'toolbar1' => implode( ',', $toolbar1 ),
        'toolbar2' => implode( ',', $toolbar2 ),
        'toolbar3' => implode( ',', $toolbar3 ),
        'toolbar4' => implode( ',', $toolbar4 ),
        'external_plugins' => wp_json_encode( $external_plugins ),
        'classic_block_editor' => true,
    );

    if ( $disable_captions ) {
        $tinymce_settings['wpeditimage_disable_captions'] = true;
    }

    if ( ! empty( $editor_settings['tinymce'] ) && is_array( $editor_settings['tinymce'] ) ) {
        array_merge( $tinymce_settings, $editor_settings['tinymce'] );
    }

    /* This filter is documented in wp-includes/class-wp-editor.php */
    $tinymce_settings = apply_filters( 'tiny_mce_before_init', $tinymce_settings, 'classic-block' );

    // 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, ' ,' ) . '}';

    $script = 'window.wpEditorL10n = {
        tinymce: {
            baseURL: ' . wp_json_encode( includes_url( 'js/tinymce' ) ) . ',
            suffix: ' . ( SCRIPT_DEBUG ? '""' : '".min"' ) . ',
            settings: ' . $init_obj . ',
        }
    }';

    $wp_scripts->add_inline_script( 'wp-block-library', $script, 'before' );
}

添加: 尝试将 $value{0} 的两次提及更改为 $value[0] 但没有成功。

php wordpress error-handling http-status-code-500
© www.soinside.com 2019 - 2024. All rights reserved.