我有一个前端帖子表单,允许用户上传多张照片,在那里我有2个输入字段,用于尝试保存每个附件的自定义元数据-
$vid_pix = get_post_meta($v_Id, \'vid_pix\', false);
if (!empty($vid_pix)) {
foreach ($vid_pix as $vP) {
$Pt = get_post_meta($vP, \'photo_time\', true);
$Por = get_post_meta($vP, \'photo_order\', true);
echo \'<img src="\' . wp_get_attachment_thumb_url($vP) . \'" alt=""/>\';
echo \'<input type="hidden" name="photo_order" class="photo_order" value="\'.$Por.\'" />\';
echo \'<input type="text" name="photo_time" class="photo_time" value="\'.$Pt.\'"/>\';
}
}
提交表单时,我尝试使用以下方法保存表单(我注释掉了失败的尝试)-//$Pt = get_post_meta($v_Id, \'photo_time\', false);
//$Por = get_post_meta($v_Id, \'photo_order\', false);
// GET ATTACHMENT IDS
if (!empty($vid_pix)) {
foreach ($vid_pix as $vP) {
$post_id = $vP;
$meta = $_POST[\'attachments\'][ $post_id ][\'photo_time\'];
update_post_meta($post_id, \'photo_time\', $meta);
$meta_two = $_POST[\'attachments\'][$post_id][\'photo_order\'];
update_post_meta($post_id, \'photo_order\', $meta_two);
update_post_meta($vP, \'photo_time\', $attachment[\'attachments\'][$vP][\'photo_time\']);
update_post_meta($vP, \'photo_order\', $attachment[\'attachments\'][$vP][\'photo_order\']);
//$Pt = get_post_meta($v_Id, \'photo_time\', false);
//$Por = get_post_meta($v_Id, \'photo_order\', false);
//$Pt = get_post_meta($vP, \'photo_time\', true);
//$Por = get_post_meta($vP, \'photo_order\', true);
//update_post_meta($vP, \'photo_time\', $Pt);
//update_post_meta($vP, \'photo_order\', $Por);
//update_post_meta($v_Id, \'_photo_time\', $newvidPix);
//add_post_meta($v_Id, \'photo_time\', $Pt, false);
然而,我无法让它工作。在函数中使用以下代码。php我可以在后端完成所有工作-- // ADD FIELDS
function mytheme_attachment_fields( $fields, $post ) {
$meta = get_post_meta($post->ID, \'photo_time\', true);
$fields[\'photo_time\'] = array(
\'label\' => \'photo time\',
\'input\' => \'text\',
\'value\' => $meta,
\'show_in_edit\' => true,
);
$meta_two = get_post_meta($post->ID, \'photo_order\', true);
$fields[\'photo_order\'] = array(
\'label\' => \'photo order\',
\'input\' => \'text\',
\'value\' => $meta_two,
\'show_in_edit\' => true,
);
return $fields;
}
add_filter( \'attachment_fields_to_edit\', \'mytheme_attachment_fields\', 10, 2 );
// Update custom field on save
function mytheme_update_attachment_meta($attachment){
global $post;
update_post_meta($post->ID, \'photo_time\', $attachment[\'attachments\'][$post->ID][\'photo_time\']);
update_post_meta($post->ID, \'photo_order\', $attachment[\'attachments\'][$post->ID][\'photo_order\']);
return $attachment;
}
add_filter( \'edit_attachment\', \'mytheme_update_attachment_meta\', 4);
// Update custom field via ajax
function mytheme_media_xtra_fields() {
$post_id = $_POST[\'id\'];
$meta = $_POST[\'attachments\'][$post_id ][\'photo_time\'];
update_post_meta($post_id , \'photo_time\', $meta);
$meta_two = $_POST[\'attachments\'][$post_id ][\'photo_order\'];
update_post_meta($post_id , \'photo_order\', $meta_two);
clean_post_cache($post_id);
}
add_action(\'wp_ajax_save-attachment-compat\', \'mytheme_media_xtra_fields\', 0, 1);
如何在前端节省开支,有什么想法吗?谢谢