文本框字符串自定义元值已保存,但保存后显示为 "array"

Textbox string custom meta value gets saved, but after save it's shown as "array"

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

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    
}

get_post_custom 总是 return 多维数组,即使期望单值数组 - Ref Codex: get_post_custom

因此,即使您(大概)将 biz_namebiz_addr 设置为字符串,get_post_custom() 仍将 return 数组中的每个值。

你肯定知道它只有一个结果,你可以直接访问第一个元素,例如

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


仅供参考:与您的问题无关,但我注意到您的地址标签中的 for 值错误(应该是 "biz_addr"): <label for="biz_name">Address</label>