我需要使用相同的键保存到数组值。例如,对于选择名称'crop43',我需要保存两个值:垂直和水平。
metabox中的输入字段:
<p>
<label for="crop43">4:3 Crop position</label>
<select name="crop43[]" style="width: 10%">
<option>Center</option>
<option>Top</option>
<option>Bottom</option>
</select>
<select name="crop43[]" style="width: 10%">
<option>Center</option>
<option>Left</option>
<option>Right</option>
</select>
</p>
保存程序:
if(isset($_POST['crop43'])) {
update_post_meta($post->ID, 'crop43', $_POST['crop43']);
}
它只保存最后一个信息(水平位置),但不保存垂直信息。
答案 0 :(得分:0)
更简单的解决方案是重命名2个选项。
<p>
<label for="vertical">4:3 Crop position</label>
<select name="vertical" style="width: 10%">
<option>Center</option>
<option>Top</option>
<option>Bottom</option>
</select>
<select name="horizontal" style="width: 10%">
<option>Center</option>
<option>Left</option>
<option>Right</option>
</select>
</p>
然后你可以这样做:
if(isset($_POST['horizontal'] && isset($_POST['vertical]){
$array = array();
$array['horizontal'] = $_POST['horizontal'];
$array['vertical'] = $_POST['vertical'];
$crop43 = json_encode($array);
update_post_meta($post->ID, 'crop43', $crop43);
}
然后,如果要将de数据库值更改回数组,请使用json_decode。