我正在尝试同时更新meta之后的多个帖子。我有以下查询:
<form action="" method="post">
<?php
$variations = new WP_Query();
$variations->query(array('showposts' => -1, 'post_type' => 'product_variation' )); while ($variations->have_posts()) : $variations->the_post(); ?>
<input name="regular_price[]" type="text" value="<?php echo get_post_meta(get_the_id(), "_regular_price", true); ?>" />
<input name="sale_price[]" type="text" value="<?php echo get_post_meta(get_the_id(), "_sale_price", true); ?>" />
<input name="item_id[]" type="hidden" value="<?php echo get_the_id(); ?>" />
<?php endwhile; wp_reset_query();?>
<input name="save" type="submit" />
然后我有以下php来处理数据:
<?php
if (isset($_POST['save'])) {
$ids = $_POST['item_id'];
$sales = $_POST['sale_price'];
foreach ($ids as $id){
update_post_meta($id,'_sale_price',$sale));
}
} ?>
由于某种原因,上述方法无法正确保存。它只会保存最后一个值,并将其应用于所有post meta。我有什么问题吗?
答案 0 :(得分:3)
我认为您需要在update_post_meta字段中将ID添加到$sale
。像这样:
<?php
if (isset($_POST['save'])) {
$ids = $_POST['item_id'];
$sales = $_POST['sale_price'];
foreach ($ids as $id){
update_post_meta($id,'_sale_price',$sale[$id]));
}
} ?>
答案 1 :(得分:0)
你忘记了} for for for for。
update .......;
}
}
答案 2 :(得分:0)
danyo,我觉得你对$count
有疑问。请确保此变量具有正确的计数值以更新循环中的数据。