Php 用add_post_meta序列化
我正在使用cmb2插件为自定义帖子类型创建分组自定义元框。那边的一切都很好 我还在前端创建了一个自定义表单来更新整个自定义帖子类型 我遇到的问题是,我的分组自定义元框没有得到更新 如果在从管理区域更新自定义帖子类型后检查数据库,则数据库中的meta_值显示为:Php 用add_post_meta序列化,php,wordpress,serialization,metadata,Php,Wordpress,Serialization,Metadata,我正在使用cmb2插件为自定义帖子类型创建分组自定义元框。那边的一切都很好 我还在前端创建了一个自定义表单来更新整个自定义帖子类型 我遇到的问题是,我的分组自定义元框没有得到更新 如果在从管理区域更新自定义帖子类型后检查数据库,则数据库中的meta_值显示为: a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";} s:87:"a:3:{s:4:"name";s:4:"ton
a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";}
s:87:"a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";}";
但是,当我使用自定义表单从前端更新自定义帖子类型时,数据库中的meta_值显示为:
a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";}
s:87:"a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";}";
出于某种原因,开始时的数据位:
s:87:"
当我序列化数据数组时添加,并导致我的数据不显示在编辑后屏幕的管理区域中
以下是我用于从前端更新自定义帖子类型的代码:
$current_user = wp_get_current_user();
$pid = get_page_by_title( $current_user->user_email,'OBJECT','application');
$post = array(
'ID' => $pid->ID,
'post_title' => $current_user->user_email,
'post_status' => 'pending',
'post_type' => 'application',
'author' => $current_user->ID
);
$pid = wp_update_post($post);
}
foreach($_POST as $k => $v){
if(is_array($v)){
delete_post_meta($pid, $k);
foreach($v as $k2 => $v2){
add_post_meta($pid, $k, serialize($v2));
}
}else{
update_post_meta($pid, $k, esc_attr(strip_tags($v)));
}
}
替换:
add_post_meta($pid, $k, serialize($v2));
与:
我发现add_post_元函数已经序列化了数据,因此我不需要使用serialize()再次序列化数据。替换:
add_post_meta($pid, $k, serialize($v2));
与:
我发现add_post_元函数已经序列化了数据,因此我不需要使用serialize()再次序列化数据