Elementor Widget 无法找到我的 Class,返回致命错误

Elementor Widget not able to locate my Class, returning Fatal Error

我是开发 Elementor Widgets 的新手,所以在我的主题文件夹中,我创建了一个自定义 elementor.php 文件来调用我创建的 widgets 文件夹中的 PHP 文件。应该可以,但由于某种原因,它找不到我在文件中创建的 class。

基本上它调用了一个像这样开始的致命错误:

Fatal error: Uncaught Error: Class 'datacoral\Widgets\Post_Grid' not found in /home/customer/www/staging2.com/public_html/wp-content/themes/my-theme/custom-elementor.php:27

这是我的自定义 elementor.php 文件中的代码:

namespace postgrid;
class Widget_Loader{
  private static $_instance = null;
  public static function instance()
  {
    if (is_null(self::$_instance)) {
      self::$_instance = new self();
    }
    return self::$_instance;
  }
  private function include_widgets_files(){
    require_once(__DIR__ . '/widgets/post_grid.php');
  }
  public function register_widgets(){
  $this->include_widgets_files();
    \Elementor\Plugin::instance()->widgets_manager->register_widget_type(new Widgets\Post_Grid()); // Call to locate class aka line 27
  }
  public function __construct(){
    add_action('elementor/widgets/widgets_registered', [$this, 'register_widgets'], 99);
  }
}
Widget_Loader::instance();

然后在 post_grid 文件中,这里 post 太长了,真正重要的是:

class Post_Grid extends Widget_Base

就像我说的,这对这一切都是新的,但这看起来不错,为什么它不起作用?

您在 Post_Grid 中使用的命名空间是什么? 如果您的命名空间是 datacoral\Widgets,您应该将其设置为与 Widget_Loader (postgrid\Widgets) 相同或在代码顶部导入它(使用 datacoral\Widgets;)以访问 Post_Grid class