来自表单的数组 - Wordpress元数据

时间:2011-05-31 22:59:56

标签: php arrays forms wordpress metadata

我有一个自定义帖子类型,其中包含一个用于存储某些数据(名称,网址)的表单,以便在模板中显示。

我想知道的是如何将这些值存储在数组中?

我的代码示例:

<? function files_metadata(){  
        global $post; 
        $custom = get_post_custom($post->ID);  
        $name = $custom["name"][0];
        $url = $custom["url"][0];

        echo '<input type="hidden" name="files_metadata" id="files_metadata" value="' .wp_create_nonce('files_m'). '" />'; ?>  

<label>Name: </label><br/>
<input id="name" name="name" value="<?php echo $name; ?>" />
<label>Url: </label><br/>
<input id="url" name="url" value="<?php echo $url; ?>" />

<? function save_meta_files($post_id) {  
        if (!wp_verify_nonce($_POST['files_metadata'], 'files_m')) return $post_id;
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $post_id;

        update_post_meta($post_id, "name", $_POST["url"]);   
        update_post_meta($post_id, "url", $_POST["url"]); 
    }  

add_action('save_post', 'save_meta_files'); ?> 

为此,我想添加类似......

的内容
$url = $custom["url"][0];
$url2 = $custom["url"][1];
$url3 = $custom["url"][2];

<input id="url" name="url[0]" value="<?php echo $url; ?>" />
<input id="url2" name="url[1]" value="<?php echo $url2; ?>" />
<input id="url3" name="url[2]" value="<?php echo $url3; ?>" />

update_post_meta($post_id, "url", $_POST["url"][0]); 
update_post_meta($post_id, "url2", $_POST["url"][1]); 
update_post_meta($post_id, "url3", $_POST["url"][2]); 

......但实际上有效......

1 个答案:

答案 0 :(得分:2)

传递的数组将序列化为字符串:http://codex.wordpress.org/Function_Reference/update_post_meta

update_post_meta(
    $post_id,
    'files_metadata',
    array(
        'name1' => $_POST['name1'],
        'url1' => $_POST['url1']
        'name2' => $_POST['name2'],
        'url2' => $_POST['url2']
    )
);