Wordpress сохранить выбор флажков метабокса

Возникла проблема, из-за которой флажки внутри метабокса не сохраняются. Я могу сохранить одно значение и заставить его возвращать значение флажков, а не несколько значений, которые мне нужны. Я попытался добавить цикл foreach в код update_post_meta, но это не сработало. Немного смущен тем, где я ошибаюсь.

код флажка:

$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']);

Большое спасибо!


person jamper    schedule 24.07.2014    source источник


Ответы (1)


Это не простой ответ на ваш вопрос, но он должен помочь. (Я пытаюсь решить аналогичную проблему.)

Ваша проблема в целом: update_post_meta() сохраняет одно мета-значение, а не набор значений. Поскольку вы хотите сохранить значения нескольких флажков, у вас есть два варианта:

  1. Вызовите update_post_meta() один раз для каждого из флажков, создав набор мета-значений, связанных с публикацией.
  2. Объедините все значения флажков в одну строку и сохраните их как одно значение с помощью одного вызова update_post_meta().

Эти два предыдущих вопроса связаны между собой и могут указать вам правильное направление.

person Andy Giesler    schedule 21.04.2015