首页 > 解决方案 > 更新到 PHP 7.4 后的错误:未捕获的错误:调用数组上的成员函数 find()

问题描述

在我将 WordPredd 网站的 PHP 版本更新为 PHP 7.4 后,我在使用插件时遇到错误。

错误:

Ein Fehler vom Typ E_ERROR wurde in der Zeile 39 der Datei /homepages/12/d38950651/htdocs/clickandbuilds/SKYLIGHTVeranstaltungstechnikGmbH/wp-content/plugins/musexpress/includes/converter/utils/class-muse-converter.php verursacht. Fehlermeldung: Uncaught Error: Call to a member function find() on array in /homepages/12/d38950651/htdocs/clickandbuilds/SKYLIGHTVeranstaltungstechnikGmbH/wp-content/plugins/musexpress/includes/converter/utils/class-muse-converter.php:39
Stack trace:
#0 /homepages/12/d38950651/htdocs/clickandbuilds/SKYLIGHTVeranstaltungstechnikGmbH/wp-content/plugins/musexpress/includes/converter/class-pages-converter.php(190): MusexPress\Converter\Utils\Muse_Converter::convert_redirect_elements(Object(simple_html_dom), 'mietpark')
#1 /homepages/12/d38950651/htdocs/clickandbuilds/SKYLIGHTVeranstaltungstechnikGmbH/wp-content/plugins/musexpress/includes/converter/class-pages-converter.php(124): MusexPress\Converter\Pages_Converter->page_conversion('https://www.sky...', '/homepages/12/d...', Array, 'desktop')
#2 /homepages/12/d38950651/htdocs/clickandbuilds/SKYLIGHTVeranstaltungstechnikGmbH/wp-content/plugins/musexpress/includes/converter/class-conversion-handler.php(60): MusexPress\Converter\Pages_Converter->init()
#3 /homepages/12/d38950651

这是PHP片段:

static function convert_redirect_elements( $page_parse, $page_name ) {
    foreach ( $page_parse->find( 'link[rel="canonical"]' ) as $element ) {
        $element->href = Php_Converter::get_permalink( $page_name );
    }
    foreach ( $page_parse->find( 'link[rel="alternate"]' ) as $element ) {

        if ( strpos( $element->href, 'phone/' ) !== false ) {
            $element->href = Php_Converter::get_permalink( "phone-" . $page_name );
        } else if ( strpos( $element->href, 'tablet/' ) !== false ) {
            $element->href = Php_Converter::get_permalink( "tablet-" . $page_name );
        }
    }
    // error happens on the below line
    foreach ( $page_parse->find( 'head', 0 )->find( 'script' ) as $element ) {
        $element->innertext = str_replace( 'phone/' . $page_name . '.html', Php_Converter::get_permalink( "phone-" . $page_name ), $element->innertext );
        $element->innertext = str_replace( '../' . Php_Converter::get_permalink( "phone-" . $page_name ), Php_Converter::get_permalink( "phone-" . $page_name ), $element->innertext );
        $element->innertext = str_replace( 'tablet/' . $page_name . '.html', Php_Converter::get_permalink( "tablet-" . $page_name ), $element->innertext );
    }
}

第 39 行是:

foreach ( $page_parse->find( 'head', 0 )->find( 'script' ) as $element ) {

标签: phpwordpress

解决方案


推荐阅读