1

我在数据库中的数据以这种格式存储为数组。

正确的存放方法:

array (
  0 => '18459',
  1 => '18462',
)

导入的格式在我的 csv 文件中由管道分隔,18459|18461但是每当我导入时,它都会像这样存储值。

array (
  0 => '18459|18461',
)

[附加信息] 这是数据库通过复制元键来存储数据的方式sp_team。如果我可以将第二个元键更改为其他内容,例如 sp_team2,然后将其放在我的 CSV 文件中,我认为它可能会起作用。问题是我的导入认为它应该只导入18459|18462一个sp_team field,而另一个sp_team不需要,事实并非如此。但我不知道怎么做。

在此处输入图像描述

在两个字段的 wp-editor 内部

在此处输入图像描述 如果有一种方法可以重命名第二个可行的方法sp_team

我迫切需要一种解决方法。如您所见,它没有存储第二个值。我会感谢你的帮助。谢谢

4

1 回答 1

1

您可以分解挂钩内的值并一一插入。

这需要进入functions.php活动主题(或子主题)的文件。为清楚起见,内联注释。

function my_18459_update_post_meta( $post_id, $meta_key, $meta_value ) {
    $separator = '|';

    // only act on the 2 custom fields with pipes as separators:
    if($meta_key == 'sp_team' || $meta_key == 'sp_player') {

        /* Hook fires AFTER the "incorrect" unseparated meta value was 
           inserted in the DB, so need to delete it first: */
        delete_post_meta($post_id, $meta_key, $meta_value);

        // break up the values using | as separator:
        $meta_values = explode($separator, $meta_value);
        if ( ! empty( $meta_values ) ) {
            // insert values into wp_postmeta table one by one:
            foreach ( $meta_values as $meta_value ) {
                add_post_meta($post_id, $meta_key, $meta_value);
            }
        }
    }
}

add_action( 'pmxi_update_post_meta', 'my_18459_update_post_meta', 10, 3 );

我使用的相关导入设置截图:

WP All Import 自定义字段设置截图

WP All Import 记录匹配设置截图

您还可以在评论中提供的链接中检查导入设置。

于 2020-06-17T22:57:12.263 回答