从单个CSV条目导入多个自定义字段值

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

正确的存储方式:

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

导入格式用18459|18461这样的csv文件中的管道分隔,但是每次导入时,它都存储这样的值。

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

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

从单个CSV条目导入多个自定义字段值

在wp编辑器中的两个字段内

从单个CSV条目导入多个自定义字段值

如果可以的话,我可以重命名第二个sp_team可以正常工作吗?

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

iCMS 回答:从单个CSV条目导入多个自定义字段值

您可以将值分解成一个钩子,并将它们一个接一个地插入。

这需要进入活动主题(或子主题)的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_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_value);
            }
        }
    }
}

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

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

screenshot of WP All Import custom fields setting

screenshot of WP All Import record matching setting

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

本文链接:https://www.f2er.com/2117084.html

大家都在问