Php 如何在Elementor SELECT2控件上指定默认值或两个值?

Php 如何在Elementor SELECT2控件上指定默认值或两个值?,php,wordpress,jquery-select2,elementor,Php,Wordpress,Jquery Select2,Elementor,使用WordPress在Elementor上工作,有人知道我如何在SELECT2控件上指定默认值或默认值数组吗 以下是控件的代码: $this->add_control( '27_listing_types', [ 'label' => __( 'Listing Types', 'my-listing' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'fields' => [ [

使用WordPress在Elementor上工作,有人知道我如何在SELECT2控件上指定默认值或默认值数组吗

以下是控件的代码:

$this->add_control( '27_listing_types', [
    'label' => __( 'Listing Types', 'my-listing' ),
    'type' => \Elementor\Controls_Manager::REPEATER,
    'fields' => [ [
          'name' => 'type',
          'label' => __( 'Select Listing Type', 'my-listing' ),
          'type' => \Elementor\Controls_Manager::SELECT2,
          'options' => $listing_types,
          'default' => '',
          'label_block' => true,
    ] ],
    'title_field' => sprintf(
        '{{{ (%s)[type] || "n/a" }}}',
        trim( wp_json_encode( $listing_types ), '"' )
    ),
] );
其中
$listing_types
是一个数组:
{“member-b2b”:“member-b2b”,“member-b2c”:“member-b2c”}

感谢所有能帮忙的人

编辑:
在根据Jasie的答案尝试添加默认值后,其行为如下:

我仍然需要按“添加元素”

然后,它添加了一个具有预选值“Membre-B2B”的元素,该值是我在控件代码中指定的值,但该选定项不起作用,也不会向小部件提供信息:

应该这样才能正常工作:

编辑:

编辑:

我终于让它工作了,下面是正确的代码:

$this->add_control( '27_listing_types', [
    'label' => __( 'Listing Types', 'my-listing' ),
    'type' => \Elementor\Controls_Manager::REPEATER,
    'fields' => [ [
        'name' => 'type',
        'label' => __( 'Select Listing Type', 'my-listing' ),
        'type' => \Elementor\Controls_Manager::SELECT2,

        'options' => [
            'membre-b2b' => 'Membre-B2B',
            'membre-b2c' => 'Membre-B2C',
        ],
        
        'label_block' => true,
    ] ],
    'default' => [
        [
            'type' => 'membre-b2b',
        ],
        [
            'type' => 'membre-b2c',
        ]
    ],
] );

这将创建一个具有两个默认值的数组的中继器控件

谢谢你的帮助

根据官方文件:

default
Select2控件的参数:


字符串|数组选定的选项键或选定值的数组 如果multiple设置为true

示例如下:

更新:
根据官方文件,
中继器
控件的默认工作方式如下:

首先创建SELECT2控件,然后通过以下操作将其添加到中继器:
“字段”=>$Repeater->get_controls(),
。另请参见
默认值
参数:

$this->add_control(
    'list',
    [
        'label' => __( 'Repeater List', 'plugin-domain' ),
        'type' => \Elementor\Controls_Manager::REPEATER,
        'fields' => $repeater->get_controls(),
        'default' => [
                [
                    'list_title' => __( 'Title #1', 'plugin-domain' ),
                    'list_content' => __( 'Item content. Click the edit button to change this text.', 'plugin-domain' ),
                ],
                [
                    'list_title' => __( 'Title #2', 'plugin-domain' ),
                    'list_content' => __( 'Item content. Click the edit button to change this text.', 'plugin-domain' ),
                ],
        ],
        'title_field' => '{{{ list_title }}}',
    ]
);

感谢您的帮助,但不幸的是,这并没有按预期效果。我仍然需要按“添加元素”按钮,然后它添加了一个带有“半”预选值的元素(没有屏幕截图很难说)。请编辑您的问题,并添加一个屏幕截图:-)“或者如果“倍数”设置为true,则添加一个选定值数组”。您是否将参数
'multiple'=>设置为true,
?是的,没有根本性的更改,请查看屏幕快照查看您的上次更新,但我无法使任何东西正常工作。很遗憾:(事实上,我刚刚意识到这个Elementor控件是一个带有select2字段的转发器控件。如果您使用select2控件而不使用转发器控件,那么它可以独立运行吗?您尝试过吗?
$this->add_control(
    'list',
    [
        'label' => __( 'Repeater List', 'plugin-domain' ),
        'type' => \Elementor\Controls_Manager::REPEATER,
        'fields' => $repeater->get_controls(),
        'default' => [
                [
                    'list_title' => __( 'Title #1', 'plugin-domain' ),
                    'list_content' => __( 'Item content. Click the edit button to change this text.', 'plugin-domain' ),
                ],
                [
                    'list_title' => __( 'Title #2', 'plugin-domain' ),
                    'list_content' => __( 'Item content. Click the edit button to change this text.', 'plugin-domain' ),
                ],
        ],
        'title_field' => '{{{ list_title }}}',
    ]
);