[英]serialize with add_post_meta
我正在使用cmb2插件為自定義帖子類型創建分組的自定義元框。 那邊的一切都運轉良好。
我還在前端創建了一個自定義表單,以完整更新自定義帖子類型。
我遇到的問題是我的分組自定義元框沒有得到更新。
如果從管理區域更新自定義帖子類型后檢查數據庫,則數據庫中的meta_value將顯示為:
a:3:{s:4:"name";s:4:"tony";s:3:"dob";s:10:"11/02/1982";s:10:"occupation";s:6:"driver";}
但是當我使用自定義表單從前端更新自定義帖子類型時,數據庫中的meta_value顯示為:
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_meta($pid, $k, $v2);
我發現add_post_meta函數已經對數據進行了序列化,因此我不需要使用serialize()來再次對數據進行序列化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.