反序列化自定义字段并在 Wordpress 数据库中另存为多行

Unserialize Custom Field & Save as Multiple Rows in Wordpress Database

我在 wordpress 数据库的 post_meta table 中有一个自定义字段。它被称为'combined'。如果键有多个值,我想根据键分隔值并将它们保存为多行。

我的meta_key:

我运行我的代码后的结果:

我想要的:

我的代码:

add_action( 'init', function() {
    if ( 'migrate' !== filter_input( INPUT_GET, 'action' ) ) {
        return;
    }
 
    $query = new WP_Query( [
        'posts_per_page' => -1,
        'post_type'      => 'post',
        'post_status'    => 'any',
    ] );
    if ( ! $query->have_posts() ) {
        return;
    }
 
    while ( $query->have_posts() ) {
        $query->the_post();
        
        $data = get_post_meta( get_the_ID(), 'combined', true );
        
foreach($data as $singleData => $value ){
    
    update_post_meta( get_the_ID(), $singleData, $value );


}

    }
} );

我找到了获取数据库中所需值的方法。用代码更改上面代码中的循环部分就可以了。

$data = get_post_meta( get_the_ID(), 'combined', true );
        
foreach($data as $singleData => $value ){
    $thisArray = $data[$singleData];    
        foreach ($thisArray as $key2 => $value){
            add_post_meta( get_the_ID(), $singleData, $thisArray[$key2], $unique = false);
        }   
}