我目前正在开发一个 elementor 小部件,但遇到以下问题: 我想在 REPEATER 控件中有一个 GALLERY 控件,如下图所示:
这是我的小部件中字段块的代码:
$this->add_control(
'my_list',
[
'label' => esc_html__( 'My List', 'texdomain' ),
'type' => \Elementor\Controls_Manager::REPEATER,
'fields' => [
[
'name' => 'list_title',
'label' => esc_html__( 'Name #1', 'texdomain' ),
'type' => \Elementor\Controls_Manager::TEXT,
'default' => esc_html__( 'Name #1' , 'texdomain' ),
'label_block' => true,
],
[
'name' => 'add_image',
'label' => esc_html__( 'Add Images', 'texdomain' ),
'type' => \Elementor\Controls_Manager::GALLERY,
'label_block' => true,
'default' => [],
],
],
'default' => [
[
'list_title' => esc_html__( 'Title #1', 'texdomain' ),
'add_image' => [],
],
],
'title_field' => '{{{ list_title }}}',
]
);
这是我的渲染代码:
if ( $settings['my_list'] ) {
foreach ( $settings['my_list'] as $item ){
echo '<div class="title">' . $item['list_title'] . '</div>';
foreach ( $settings['add_image'] as $image) {
echo '<img src="' . esc_attr( $image['url'] ) . '">';
}
}
}
但是,输出显示以下警告:
未定义的数组键“add_image”...
Foreach() 参数必须是数组|对象类型,给定为空...
以下是一些参考链接:
任何帮助将不胜感激。