WordPress更新多个帖子发布元

时间:2013-11-26 作者:danyo

我正在尝试同时更新多个帖子的post-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。我做错什么了吗?

1 个回复
最合适的回答,由SO网友:Chittaranjan 整理而成

这是因为在收集发布的数据时,项目id和价格之间没有关系。按以下步骤进行更改。

将sale\\u price更改为以下,以包含项目id

<input name="sale_price[<?php echo get_the_id(); ?>]" type="text" value="<?php echo get_post_meta(get_the_id(), "_sale_price", true); ?>" />
然后更改收集数据的循环,如下所示。

foreach ($ids as $id){
    update_post_meta($id,\'_sale_price\', $sales[$id]);
}

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在