首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elementor自定义媒体控件

Elementor自定义媒体控件
EN

Stack Overflow用户
提问于 2021-01-12 09:28:45
回答 1查看 237关注 0票数 0

我目前正在尝试复制Elementor的插件媒体控件,以便在wordpress中对其进行一些调整。我尝试从\Elementor\Control_Media复制控件,更改类的名称和此方法:

代码语言:javascript
复制
class Control_Custom_Media extends \Elementor\Control_Base_Multiple {
    ...
    public function get_type() {
        return 'custommedia';
    }
}  

然后注册它

代码语言:javascript
复制
function register_custom_controls($controls) {
    include 'control-custom-media.php';

    Plugin::instance()->controls_manager->register_control( 'custommedia', new Control_Custom_Media() );
}
add_action( 'elementor/controls/controls_registered', 'register_custom_controls');

最后,我使用该控件创建了一个小部件

代码语言:javascript
复制
protected function _register_controls() {
    ...
    $this->add_control(
        'image',
        [
            'label' => __( 'Test', 'custom-plugin' ),
            'type' => 'custommedia',
            'default' => [
                'url' => \Elementor\Utils::get_placeholder_image_src(),
            ],
        ]
    );
    ...
}

但我似乎不能让它工作。这个字段出现在elementor侧边栏上,但是一旦我点击打开媒体库,它就不起作用了。是否已检查事件并且触发'openFrame‘事件的事件由于某种原因而未绑定?

为了测试媒体控件是否正常工作,我在后面添加了媒体控件,其中一个可以工作

我可能做错了什么?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2021-01-12 18:45:12

我最终为我的自定义控件扩展了Media控件,并将其添加为控件视图。

代码语言:javascript
复制
var customMediaView = elementor.modules.controls.Media.extend({
    onReady: function () {
        /* do stuff */
    }
});

elementor.addControlView('customMediaView', customMediaView);

关于入队方法

代码语言:javascript
复制
wp_register_script( 'custommedia-control',  plugins_url('/custommedia-control.js', __DIR__), [ 'elementor-editor' ], '1.0.0', true );
wp_enqueue_script( 'custommedia-control' );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65676839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档