使用 WP All Import 将多个值从 CSV 列导入到 ACF 复选框字段

问题描述 投票:0回答:1

我很难使用 WP All Import 将 CSV 文件中单列中列出的多个值导入到高级自定义字段 (ACF) 复选框字段中。 如果该列只有一个值,例如“西班牙语”,那么效果很好。 但如果该列有多个值,例如“西班牙语、英语”,则根本不会导入任何内容。

wordpress wpallimport
1个回答
0
投票

我犯的主要错误是使用“自定义字段”部分而不是“高级自定义字段附加组件”部分。 在“高级自定义字段附加组件”部分中,您需要选择正确的字段组来查找您的字段(在本例中为“语言”)。 当您在打开的部分中找到您的字段时,单击“Set with XPath”并将您的 CSV 字段从右侧列表拖到“Set with XPath”文本字段中。

enter image description here

这就是您所要做的全部工作如果您的 CSV 文件中的值与 ACF 复选框字段中使用的值完全匹配。 如果 CSV 中的值与 ACF 中的值不匹配,则需要使用映射,这意味着您需要一个到“函数编辑器”的 PHP 映射函数。 该函数应将 CSV 中的值列表映射到与 ACF 匹配的映射值列表。 这是一个用于执行多值映射的 PHP 函数(改编自 WP All Import 提供的单值映射函数

<?php
    function mapped_array($data, $map) {
        if (empty($data)) {
            return "";
        }

        // build comma separated list
        $finalList = "";
        $valueArray = explode(",",$data);
        foreach ($valueArray as $x) {
            if (!empty($finalList)) {
                $finalList = $finalList . ",";
            }
            $finalList = $finalList . (isset( $map[$x] ) ? $map[$x] : $x);
        }
        return $finalList;
    }

    function map_languages( $data ) {
        $map = array(
            'Spanish' => 'spanish',
            'Chinese' => 'chinese',
            'American Sign Language' => 'asl',
        );
        return mapped_array($data, $map);
    }
?}

然后在“Set with XPath”文本字段中调用该函数,如下所示:

[地图语言({语言[1]})]

© www.soinside.com 2019 - 2024. All rights reserved.