问题描述
|
我得到了一个自定义帖子类型,其中带有用于存储要在模板中显示的一些数据(名称,URL)的表单。
我想知道的是如何将这些值存储在数组中?
我的代码示例:
<? 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,$_POST[\"url\"][0]);
update_post_Meta($post_id,\"url2\",$_POST[\"url\"][1]);
update_post_Meta($post_id,\"url3\",$_POST[\"url\"][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\']
)
);