前提・実現したいこと
4つのグループがあり、1つのグループに150名程が所属しています。
このメンバーをReally Simple CSV ImporterでACFの繰り返しフィールドへ上書きではなく「追加」していきたい。
csvの形式はそのままでプラグインをカスタマイズしていく形で実現したいです。
作成したCSV
|1|post_type|name|link|post_status|post_id|
|:--|:--:|--:|
|2|page|name01|http://link01.co.jp/|publish|31|
|3|page|name02|http://link02.co.jp/|publish|31|
ざっくりこんな感じで1つのグループで1つのcsvを作成し、インポートを試みています。
発生している問題・エラーメッセージ
下記2サイトを参考にReally Simple CSV ImporterにACFの繰り返しフィールドをカスタマイズを行いましたが
これだと上書きになってしまい追加ができません。(name02さんのデータしか入らない。)
http://notnil-creative.com/blog/archives/2497
https://qiita.com/pappikko/items/4fbda1bc772ec01674b5
↓インポート完了画面
Array ( [name] => name01 [link] => http://link01.co.jp/ ) Array ( [field_5cb40c0a50e82] => Array ( [0] => Array ( [name] => name01 [link] => http://link01.co.jp/ ) ) ) "" の処理が完了しました。 Array ( [name] => name02 [link] => http://link02.co.jp/ ) Array ( [field_5cb40c0a50e82] => Array ( [0] => Array ( [name] => name02 [link] => http://link02.co.jp/ ) ) ) "" の処理が完了しました。
書いたコード
php
1/* Plugin Name: custom_field_importer */ 2function rsci_meta_filter( $meta, $post, $is_update ) { 3 echo '<pre>'; 4 print_r($meta); 5 echo '</pre>'; 6 7 $meta_array = array(); 8 9 $repeater_array = array(); 10 11 $i = 0; 12 13 14 foreach ($meta as $key => $value) { 15 // カスタムフィールド名が "textfield" だった時 16 if ($key == 'textfield') { 17 // ACF用のフィールドキーに変換 18 $meta_array['field_52528d5b8ad30'] = $value; 19 20 21 22 // カスタムフィールド名が "select" だった時 23 } elseif ($key == 'select') { 24 // カンマで分割して配列として登録 25 $meta_array['field_52528dc88ad31'] = preg_split("/,+/", $value); 26 27 28 29 // 繰り返しフィールド用のデータを配列に入れていく処理 30 } elseif ($key == 'name') { 31 $repeater_array[$i]['name'] = $value; 32 33 } elseif ($key == 'link') { 34 $repeater_array[$i]['link'] = $value; 35 36 $i++; 37 38 // ACF以外のメタデータはそのまま通す 39 } else { 40 $meta_array[$key] = $value; 41 } 42 43 } 44 45 46 47// 繰り返しフィールドの配列を戻す 48 $meta_array['field_5cb40c0a50e82'] = $repeater_array; 49 echo '<pre>'; 50 print_r($meta_array); 51 echo '</pre>'; 52 return $meta_array; 53 54 55 56} 57 58 59add_filter( 'really_simple_csv_importer_save_meta', 'rsci_meta_filter', 10, 3 );

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/24 04:44
2019/04/24 05:28 編集
2019/04/24 08:06
2019/04/24 10:08
2019/04/25 02:34
2019/04/25 03:25 編集
2019/04/25 03:48
2019/04/26 06:40