我目前正在尝试复制Elementor的插件媒体控件,以便在wordpress中对其进行一些调整。我尝试从\Elementor\Control_Media复制控件,更改类的名称和此方法:
class Control_Custom_Media extends \Elementor\Control_Base_Multiple {
...
public function get_type() {
return 'custommedia';
}
} 然后注册它
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');最后,我使用该控件创建了一个小部件
protected function _register_controls() {
...
$this->add_control(
'image',
[
'label' => __( 'Test', 'custom-plugin' ),
'type' => 'custommedia',
'default' => [
'url' => \Elementor\Utils::get_placeholder_image_src(),
],
]
);
...
}但我似乎不能让它工作。这个字段出现在elementor侧边栏上,但是一旦我点击打开媒体库,它就不起作用了。是否已检查事件并且触发'openFrame‘事件的事件由于某种原因而未绑定?
为了测试媒体控件是否正常工作,我在后面添加了媒体控件,其中一个可以工作

我可能做错了什么?
提前感谢
发布于 2021-01-12 18:45:12
我最终为我的自定义控件扩展了Media控件,并将其添加为控件视图。
var customMediaView = elementor.modules.controls.Media.extend({
onReady: function () {
/* do stuff */
}
});
elementor.addControlView('customMediaView', customMediaView);关于入队方法
wp_register_script( 'custommedia-control', plugins_url('/custommedia-control.js', __DIR__), [ 'elementor-editor' ], '1.0.0', true );
wp_enqueue_script( 'custommedia-control' );https://stackoverflow.com/questions/65676839
复制相似问题