文本框字符串自定义元值已保存,但保存后显示为 "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_name
和 biz_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>
我正在为页面编辑器设置自定义元框。输入到文本字段中的值会正确保存并在自定义字段框中可见。但是更新后,自定义元框中的文本字段都显示单词 "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_name
和 biz_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>