2013-02-15 3 views
1

Я работаю над функцией, которая позволит пользователю публиковать/редактировать/управлять сообщениями из внешнего интерфейса, и я застрял в обновлении массива.Wordpress update_post_meta и проблема с значением массива

update_post_meta($post_id, 'lapp_appmenu',$_POST['appmenu']); 

Этот метод работает для отдельных значений, но не при работе с массивом (при представлении это только удаляет ранее выставиться значение).

Спасибо заранее,

Nikola

EDIT:

массив является неограниченный список элементов.

<?php 
        $i = 0; 
        if ($appmenu) { 
         foreach($appmenu as $row) { ?> 
          <li><span class="sort hndle">|||</span> 
           <input type="text" name="lapp_appmenu[<?php echo $i; ?>]" id="lapp_appmenu" value="<?php echo $row; ?>" size="30" /> 
           <a class="repeatable-remove button" href="#">-</a></li> 
         <?php 

         $i++; 
         } 
        } else { ?> 

         <li><span class="sort hndle">|||</span> 
            <input type="text" name="lapp_appmenu[<?php echo $i; ?>]" id="lapp_appmenu" value="" size="30" /> 
            <a class="repeatable-remove button" href="#">-</a></li> 

        <?php }?> 

ответ

2

Wordpress хранит мета значения в виде строк. Когда вы передаете update_post_meta массив, он автоматически преобразует его в строку. То, что вам нужно сделать, это unserialize, когда вы пытаетесь прочитать данные.

http://codex.wordpress.org/Function_Reference/update_post_meta (объясняет, что значение преобразуется в строку)

http://php.net/manual/en/function.unserialize.php