Wordpress保存元数据复选框选择

时间:2014-07-24 11:50:27

标签: wordpress checkbox meta-boxes

有一个问题,即metabox中的复选框不能保存。我可以保存一个值并让它将复选的值返回到复选框,而不是多个值,这是我需要的。我尝试在update_post_meta代码中添加一个foreach循环,但它没有用。对于我出错的地方有点困惑。

复选框代码是:

$areas = $wpdb->get_results("SELECT * FROM locations ORDER BY locationName ASC");
                            if( count($areas) ) :
                                ?>

                                <div id="locationAssignedBoxes" size="1">
                                    <?php


                                    foreach($areas as $area) :
                                        ?>
                                    <input type="checkbox" id="locationAssigned" name="locationAssigned" value="<?php echo $area->id; ?>"<?php if(get_post_meta($post->ID, 'locationAssigned', true) == $area->id) { ?> checked="checked"<?php } ?> />&nbsp;<?php echo $area->locationName; ?><br>
                                        <?php
                                    endforeach;
                                    ?>
                                    </div>
                                <?php
                            endif;
                            ?>

Update_post_meta代码是:

update_post_meta($post->ID, 'locationAssigned', $_POST['locationAssigned']);

非常感谢!

1 个答案:

答案 0 :(得分:0)

这不是对您的问题的剪切和粘贴答案,但它应该有所帮助。 (我正试图解决类似的问题。)

您的问题一般: update_post_meta()保存单个元值,而不是值集合。由于您要保存多个复选框的值,因此您有两种选择:

  1. 为每个复选框调用 update_post_meta()一次,创建一个 与帖子相关的元值集合。
  2. 将所有复选框值合并为一个字符串,并将其保存为一个 update_post_meta()调用的单个值。
  3. 这两个早期的问题是相关的,可能会指向正确的方向。