WordPress保存元数据:选中时显示单词数组

时间:2017-01-23 作者:Jeremy D

我正在尝试在自定义帖子类型上保存自定义字段。当我保存数据时,它会显示单词“Array”,就好像我试图回显一个数组一样。我做了一个var\\u转储,它给了我以下信息:

阵列(1){

[0]=>

字符串(5)“你好”

}

所以我试着用$\\u POST[\'catagory\'][0]来回应它,结果是一样的。

这是我的代码:

/*
 * create meta box and fields for catagories
 */

function littlereds_menu_catagoriesMetaBox()
{
    add_meta_box(\'littlereds_menu_catagoriesMeta\', "Catagories", "littlereds_menu_catagoriesCallback", "littlereds_cat", "normal");
}
add_action(\'add_meta_boxes\', \'littlereds_menu_catagoriesMetaBox\');

function littlereds_menu_catagoriesCallback($post)
{
    wp_nonce_field(basename(__FILE__), \'littlereds_catagoryNonce\');
    $littlereds_storedMeta = get_post_meta($post->ID);
?>

    <input name="catagory" id="catagory" type="text" value="<?php
        if(!empty($littlereds_storedMeta[\'catagory\']))
            echo esc_attr($littlereds_storedMeta[\'catagory\']);
    ?>" />
    <pre><?php var_dump($littlereds_storedMeta[\'catagory\']); ?></pre>

<?php

}


/*
 * Save Catagories
 */
function littlereds_save_catagoriesMetaData($post_id)
{
    //Check the save status
    $is_autosave    = wp_is_post_autosave($post_id);
    $is_revision    = wp_is_post_revision($post_id);
    $is_valid_nonce = (isset($_POST[\'littlereds_catagoryNonce\']) &&     wp_verify_nonce($_POST[\'littlereds_catagoryNonce\'], basename(__FILE__))) ? \'true\' : \'false\';

//Exits script based on save status
if($is_autosave || $is_revision || !$is_valid_nonce)
    return;

//Save or update field data
if(isset($_POST[\'catagory\']))
    update_post_meta ($post_id, \'catagory\', sanitize_text_field($_POST[\'catagory\']));

}
add_action(\'save_post\', \'littlereds_save_catagoriesMetaData\');
附言:除了在每行前面加4个空格外,还有没有更简单的方法在这里张贴代码?感觉Tab键不适用于web表单中的间距,这真的很烦人。

1 个回复
最合适的回答,由SO网友:nibnut 整理而成

所以是的,问题不在于保存,而是如何加载保存的数据。。。请参见documentation for get_post_meta: 如果您没有提供元数据键,该函数将返回该帖子的所有元数据,这些元数据必须作为数组返回。请尝试以下操作:

$littlereds_storedMeta = get_post_meta($post->ID, \'catagory\', true);
请注意最后一个参数“true”,它将强制函数返回单个值,而不是数组。

希望这有帮助!

相关推荐