2017-09-28 31 views
0

我设置了页面编辑器的自定义元框。输入到文本字段中的值保存正确,并在自定义字段框中可见。但更新后,自定义元框中的文本字段都显示单词“数组”,而不是保存的文本字符串。文本框字符串自定义元值得到保存,但保存后显示为“数组”

screenshot

这里是从的functions.php

function restaurant_meta_box_cb() 
{   
    global $post; 
    $values = get_post_custom($post->ID); 

    $text_name = isset($values['biz_name']) ? $values['biz_name'] : ''; 
    $text_addr = isset($values['biz_addr']) ? $values['biz_addr'] : ''; 

    // We'll use this nonce field later on when saving. 
    wp_nonce_field('my_meta_box_nonce', 'meta_box_nonce'); 
    ?> 
    <p> 
     <label for="biz_name">Restaurant Name</label> 
     <input type="text" name="biz_name" id="biz_name" value="<?php echo $text_name; ?>" /> 
    </p> 
    <p> 
     <label for="biz_name">Address</label> 
     <input type="text" name="biz_addr" id="biz_addr" value="<?php echo $text_addr; ?>" /> 
    </p> 

    <?php  
} 

回答

0

get_post_custom总是返回一个多维数组的代码,即使单值的期待阵列 - 参考Codex: get_post_custom

所以,即使你有(推测)将biz_namebiz_addr设置为字符串,get_post_custom()仍然会返回数组中的每个值。如你所知道的那样,它只有一个单一的结果,你可以直接访问第一个元素,例如:

$text_name = isset($values['biz_name'][0]) ? $values['biz_name'][0] : ''; 
$text_addr = isset($values['biz_addr'][0]) ? $values['biz_addr'][0] : ''; 


FYI:无关您的问题,但我注意到你在你的地址标签有错误for值(它应该是 “biz_addr”):<label for="biz_name">Address</label>

+0

就解决了! –

+0

@AndrewRiley很高兴能帮到你!由于这解决了您的问题,请考虑接受它,以便您的问题在网站上被标记为已解决请参阅[当某人回答我的问题时该怎么办?](https://stackoverflow.com/help/someone-answers)。我们也会得到一些代表点:) – FluffyKitten

+0

完成。我是一个新手! ;) –

相关问题