将所有值保存在“多选”中

dar*_*rrr 0 php wordpress meta-boxes

我在 wordpress 中有一个带有多个选择形式的元框。

<select name="my_meta_box_select" id="my_meta_box_select" multiple="" style="width:300px; height:400px;">
    <option value="red">Red
    </option>
    <option value="blue">Blue
    </option>
</select>
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,选定的值被保存,我能够检索它,但是我希望这两个值都被保存。

例如,我希望同时保存红色和蓝色并能够从前端检索它。有没有办法实现这一目标?有比选择更好的形式吗?

目的是让用户从一个选择字段选择页面到另一个选择字段,然后保存第二个选择字段。

选择1:

红色的

蓝色

绿色

选择2:

橘子

-按钮-

现在,如果从哪里选择用户redblueselect 1,然后按-button-该值将被添加到选择2.当我现在按更新页面我希望所有的值保存在选定2。

这就是我从当前选择字段中保存的方式(但它只保存一个选定的值)

if( isset( $_POST['my_meta_box_select'] ) )
    update_post_meta( $post_id, 'my_meta_box_select', esc_attr( $_POST['my_meta_box_select'] ) );
Run Code Online (Sandbox Code Playgroud)

Nat*_*e I 5

经常被忽视,超级简单。

name 属性需要允许将多个选择$_POST作为数组发送。例如:

<select name="my_meta_box_select[]" id="my_meta_box_select" multiple="" style="width:300px; height:400px;">
    <option value="red">Red
    </option>
    <option value="blue">Blue
    </option>
</select>
Run Code Online (Sandbox Code Playgroud)

注意[]名称中的: name="my_meta_box_select[]"

这与multiple属性一起,将允许您的$_POST变量将所有选择包含为一个数组。也就是说,$_POST['my_meta_box_select']将不仅仅是一个简单的值,而是一个包含所有选择的数组。