簡體   English   中英

用add_post_meta序列化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM