如何通过编程调用Elementor全局小部件并传递值以填充字段

8
我想创建一个全局Elementor小部件,作为for each循环的一部分进行调用。这些字段需要基于我传递给它的参数进行更改。
我的目标是从PHP(插件)中调用Elementor全局小部件,然后传递变量来填充字段,例如标题、描述、图像位置等。
我知道如何传递变量,但我找不到任何地方如何调用全局Elementor小部件以及如何在PHP中直接操作字段。
我在Stackoverflow的另一个问题中找到了一个类似的示例,如下所示,但它没有特别调用全局小部件。
如果可以调用全局小部件并按照下面所示向字段发送值,则以下示例将起作用。
function loadheader() {
    $heading_widget = \Elementor\Plugin::instance()->elements_manager->create_element_instance(
        [
            'elType' => 'widget',
            'widgetType' => 'call-to-action',
            'id' => 'stubID',
            'settings' => [
                'title' => 'custom Heading from code',
                'description' => 'custom description',
                'button' => 'success!',
                'image' => 'study-footer.jpg',
                'skin' => 'classic',
            ],
        ],
        []
    );
    $heading_widget->print_element();
}
1个回答

2
或许太晚了...? 我尝试做一些类似的事情:我想创建一个 小部件,可以通过短代码调用它以嵌入到另一个小部件中(如选项卡或任何所见即所得控件)。我试图使用the_widget()函数,但似乎只适用于WP基础小部件,我搜索了很多,没有找到任何答案来解决它。我认为这是一个命名空间问题...(类和函数的范围) 最后我成功了...颠倒调用方式:短代码进行渲染,我的控制render函数使用do_shortcode()函数调用我的短代码(参数重写以匹配短代码语法)。
我不确定它是否能满足你的需求,但也许可以...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接