Elementor REPEATER Control with GALLERY Control inside, output undefined and foreach() warnings

问题描述 投票:0回答:0

我目前正在开发一个 elementor 小部件,但遇到以下问题: 我想在 REPEATER 控件中有一个 GALLERY 控件,如下图所示: my widget

这是我的小部件中字段块的代码:

$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() 参数必须是数组|对象类型,给定为空...

以下是一些参考链接:

中继器控制

画廊控制

任何帮助将不胜感激。

wordpress foreach undefined repeater elementor
© www.soinside.com 2019 - 2024. All rights reserved.