Php 如何在Elementor SELECT2控件上指定默认值或两个值?
使用WordPress在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' => [ [
$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 }}}',
]
);