엘리멘터 프로 업데이트 에러: Fatal error: Uncaught ReflectionException

Last Updated: 2023년 07월 17일 | 댓글 남기기

워드프레스 인기 페이지 빌더인 엘리멘터 프로(Elementor Pro)를 업데이트한 후에 "Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist in …/www/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php:46 Stack trace..." 에러가 표시되면서 사이트에 접속하지 못하는 문제가 발생하는 경우가 있습니다.

엘리멘터 프로 업데이트 에러: Fatal error: Uncaught ReflectionException

위의 그림에서는 오류가 발생하는 위치가 theme-document.php 파일의 라인 46인 것으로 표시되지만, 경우에 따라 라인 45에서 에러가 발생하는 것으로 표시되기도 합니다.

엘리멘터 프로 업데이트 에러: Fatal error: Uncaught ReflectionException

엘리멘터 프로가 설치된 워드프레스 사이트에서 모든 플러그인을 최신 버전으로 업데이트한 후에 다음과 같은 치명적인 오류가 발생하는 문제를 접한 적이 있습니다.

Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist in /public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php:46 Stack trace: #0 /public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php(46): ReflectionClass->getMethod('get_site_editor...') #1 /public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php(127): ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document::get_site_editor_type_bc() #2 /public_html/wp-content/plugins/elementor/core/common/modules/finder/categories/create.php(94): ElementorPro\Modules\ThemeBuilder\Documents\Theme_Document::get_create_url() #3 /public_html/wp-content/plugins/elementor/core/common/modules/finder/categories/create.php(67): Elementor in /public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php on line 46

이 문제는 최신 버전의 Elementor 플러그인이 테마나 다른 플러그인과 충돌할 때 발생할 수 있습니다. 엘리멘터와 엘리멘터 프로를 제외한 모든 플러그인을 비활성화한 후에 업데이트를 진행했을 때 문제가 발생하는지 체크해보시기 바랍니다.

문제가 해결되지 않는다면 임시 해결 방법으로 다음과 같은 시도를 할 수 있습니다.

임시 해결 방법

방법 1

가장 간단한 방법은 문제를 일으키는 라인을 주석 처리하는 것입니다. /wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php 파일의 라인 46의 코드는 다음과 같습니다.

$method = $reflection->getMethod( 'get_site_editor_type' );

위의 코드를 주석 처리합니다.

// $method = $reflection->getMethod( 'get_site_editor_type' );

방법 2

다른 방법으로 theme-document.php 파일의 다음 라인들을 찾습니다.

$reflection = new \ReflectionClass( $class_name ); // 라인 45
$method = $reflection->getMethod( 'get_site_editor_type' );

// It's own method, use it.
if ( $class_name === $method->class ) {
    return static::get_site_editor_type();
}

위의 코드를 다음 코드로 대체합니다.

if (method_exists($class_name, "get_site_editor_type")) {
    $reflection = new \ReflectionClass( $class_name );
    $method = $reflection->getMethod( 'get_site_editor_type' );
    
    // It's own method, use it.
    if ( $class_name === $method->class ) {
        return static::get_site_editor_type();
    }
}

위의 방법으로도 해결이 되지 않는다면 엘리멘터에 지원을 요청해보시기 바랍니다.

참고


댓글 남기기

Leave a Comment