在 WordPress 中的 select2 上设置多个值

Multiple values set on select2 in WordPress

我一直在尝试在 select2 下拉列表中显示多个选定值。所以,到目前为止,我已经开发了下拉菜单并保存了选定的值。 我有以下代码作为下拉列表的选项: <option value="<?php echo esc_attr($post->ID);?>"><?php the_title();?></option> 注意:选项在循环中。

现在,我无法在页面加载时将这些多个值设置为 select2。这些多个值仅在再次从下拉列表中选择任何选项时设置。

我的代码如下:

if ( isset( $wp_travel_engine_setting['crosssell']['trips'] ) && $wp_travel_engine_setting['crosssell']['trips']!='' )
{
    $selectedval = $wp_travel_engine_setting['crosssell']['trips'];
}
echo
'<script>
jQuery(document).ready(function($){
    $("#wte-cross-sell-'.$post->ID.'").select2();
    var arrayFromPHP = '.json_encode($selectedval).';
    console.log(arrayFromPHP);
    $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP);
    $("#checkbox").click(function(){
        if($("#checkbox").is(":checked") ){
            $("#wte-cross-sell-'.$post->ID.' > option").prop("selected","selected");
            $("#wte-cross-sell-'.$post->ID.'").trigger("change");
        }else{
            $("#wte-cross-sell-'.$post->ID.' > option").removeAttr("selected");
            $("#wte-cross-sell-'.$post->ID.'").trigger("change");
        }
    });
});</script>';

//变量 $selectedval 将为我们提供选定值 id 的数组,如在浏览器控制台上所见: (2) ["1301", "1024"]

谁能帮我遮遮掩掩?如何在不再次选择该选项的情况下设置页面加载的值。

感谢您的宝贵时间!

亲切的问候,

这是我犯的愚蠢错误。我忘了触发 select2 更改调用。 所以,行 $("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP) 现在将是

$("#wte-cross-sell-'.$post->ID.'").val(arrayFromPHP).trigger("change");

希望以后对大家有所帮助!