Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist
回答 4
浏览 2.6万
2022-08-08
在网站上什么都不做之后,在几天不使用的情况下,当试图登录时,出现了这样的错误。
Fatal error: Uncaught ReflectionException: Method get_site_editor_type does not exist in /usr/home/midas/domains/mydomain.com/public_html/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php:45
主题文档.php:
protected static function get_site_editor_type_bc() {
static $types = [];
$class_name = static::get_class_full_name();
$reflection = new \ReflectionClass( $class_name ); //45 line
$method = $reflection->getMethod( 'get_site_editor_type' );
// It's own method, use it.
if ( $class_name === $method->class ) {
return static::get_site_editor_type();
}
// _deprecated_function( 'get_name', '3.0.0', 'get_site_editor_type' );
// Fallback, get from class instance name (with caching).
if ( isset( $types[ $class_name ] ) ) {
return $types[ $class_name ];
}
$instance = new static();
$types[ $class_name ] = $instance->get_name();
return $types[ $class_name ];
}
我如何解决这个问题呢?
4 个回答
#1楼
已采纳
得票数 74
修改代码
$reflection = new \ReflectionClass( $class_name ); //45 line
$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();
}
}
凡是逐行检查代码的人,OP都只添加了if条件。
- Ahmed Ali 2022-09-08
#2楼
得票数 19
我解决这个问题的方法与Mayous类似。我简单地注释了/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' );
没有工作。在它下面有一行使用了$reflection,所以现在抛出了一个错误。
- RedDragonWebDesign 2022-10-13
对我来说是有效的。我发现Elementor不断推出有问题的版本,这让我非常不安。
- Johan 2022-10-18
有趣的是。也许有两个错误的版本,而这修复了其中一个错误的版本。
- RedDragonWebDesign 2022-10-19
#3楼
得票数 8
请进入。/wp-content/plugins/elementor-pro/modules/theme-builder/documents/theme-document.php
删去第47行注释
$method = $reflection->getMethod( 'get_site_editor_type' );
等待修复后的更新。
没有工作。在它下面有一行使用了$reflection,所以现在抛出了一个错误。
- RedDragonWebDesign 2022-10-13
#4楼
得票数 5
我今天也遇到了这个问题,通过回滚免费版的Elementor解决了这个问题,这是由于最近的更新中的一个bug。