0
メタフィールドで同じ名前のカスタムフィールドを作成します.DBから値を復元し、それらをシリアル化して私のパターンとして保存します。このよう複数のメタフィールド値をワードプレスの配列として保存する場合
:
Array
(
[job] => 'sdfsdf'
[image] => Array
(
[attachment_id] => '2121'
[url] => 'http://siteurl.com/wp-content/uploads/2016/04/image.jpg'
)
[popup_text] => 'A quick brown fox jumps over the lazy dog.'
)
しかし、私は値を保存する場合、すべての値が空として復元します。
は今ここに私のメタフィールドコードです:必要にあたりとして
global $wpdb;
$dsl_fw_options = get_post_meta($post->ID, 'dsl_fw_options', true);
$dsl_staff_qry = $wpdb->get_row("Select * From ". $wpdb->posts . " Where ID = ".$post->ID);
$dsl_staff_parent = $wpdb->get_row("Select * From ". $wpdb->posts . " Where post_parent = " . $post->ID . " And post_type = 'attachment' And (post_mime_type = 'image/jpeg' Or post_mime_type = 'image/png')");
?>
<table width="100%" cellspacing="2" cellpadding="2" border="0">
<tr>
<td width="20%">
<strong>Job Title</strong>
</td>
<td width="80%">
<input type="text" name="dsl_txt_fw_options['job']" value="<?php echo $dsl_fw_options['job'] ?>" style="width: 50%;">
</td>
</tr>
<tr>
<td>
<input type="text" name="dsl_txt_fw_options['attachment_id']" value="<?php echo $dsl_staff_parent->ID; ?>" style="width: 50%;">
<br>
<input type="text" name="dsl_txt_fw_options['url']" value="<?php echo $dsl_staff_parent->guid; ?>" style="width: 50%;">
<br>
<textarea name="dsl_txt_fw_options['popup_text']"><?php echo $dsl_staff_qry->post_content; ?></textarea>
</td>
</tr>
</table>
私がDBから値を取得し、それは完全に表示されます。
そして、ここで私の更新のメタ値コードです:
add_action('save_post', 'dr_save_staff_post');
function dr_save_staff_post() {
global $post;
$dsl_arr = array();
$dsl_arr_val = $_POST['dsl_txt_fw_options'];
foreach ($dsl_arr_val as $dsl_key => $dsl_val) {
$dsl_arr['job'] = $dsl_val->job;
$dsl_arr['image'] = array(
'attachment_id' => $dsl_val->attachment_id,
'url' => $dsl_val->url
);
$dsl_arr['popup_text'] = $dsl_val->popup_text;
}
update_post_meta($post->ID, 'fw_options', $dsl_arr);
}
私は、これらの値を保存し、DBからの値をチェックすると、それは私にその結果を示します:私はどこか分からない
a:3:{s:3:"job";N;s:5:"image";a:2:{s:13:"attachment_id";N;s:3:"url";N;}s:10:"popup_text";N;}
を私は間違っているので、私を案内してください。
私はそんなに愚かな.....どのようにこのような間違いをすることができます...ありがとうたくさん – deemi