0

同じキーで配列値に保存する必要があります。たとえば、名前「crop43」を選択するには、垂直方向と水平方向の 2 つの値を保存する必要があります。

メタボックスの入力フィールド:

<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']);
}

最後の情報 (水平位置) のみを保存しますが、垂直位置は保存しません。

4

1 に答える 1

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);

}

次に、データベースの値を配列に戻したい場合は、json_decode を使用します。

于 2013-06-20T21:40:18.753 に答える