• CSVでAdvanced Custom fieldプラグインで作った項目にCSV一括登録をする為に、
    Really Simple CSV Importer Media Plus を愛用しています。

    クライアントがエクセルでCSVデータを作成する際に、解り易い項目名にする為に、
    CSVファイルの項目名と、実際のフィールド名と異なるものにし、
    フィルターフックを使用して、アップロード時に項目名を書き換えたいと思います。

    しかしプログラム初心者の為、どのフィルターフックを利用すれば良いのかすらわからない状態です。
    実装したい事は以下の2点です。

    1・CSVファイルの時点での項目名「画像1」を、CSV書き込み時に「image1」に変更

    2・商品カテゴリを複数登録する為に、「カテゴリ1」「カテゴリ2」のデータを「”カテゴリ1,カテゴリ2″」という状態にしてまとめてtax_productcategoryのフィールドに入れる

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 matomegu

    (@matomegu)

    以上の実装の方法を教えて頂けると幸いです。

    プラグインページ
    https://wordpress.org/plugins/really-simple-csv-importer/other_notes/

    モデレーター Takuro Hishikawa

    (@hissy)

    参考にしてください。 http://notnil-creative.com/blog/archives/2497

    トピック投稿者 matomegu

    (@matomegu)

    有り難うございます!
    教えて頂いた記事、繰り返しフィールドではないので該当しないと思い、
    素通りしていました!

    無事に画像1 > image1には変換でき、入力できたたのですが、

    下記の2点が上手くいきません。

    ・商品名 > post_title
    (ACFのフィールドではなくではなく、タイトルエリアに書き込みたい)

    ・「カテゴリ1」「カテゴリ2」>「”カテゴリ1,カテゴリ2″」

    ACFのフィールドと、デフォルトのフィールドに書き込む場合では、書き方が違うのでしょうか。

    以下、ソースです。
    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    <?php
    /*
    Plugin Name: RS CSV Importer Customizer
    Version: 0.1
    */
    
    function rsci_meta_filter( $meta, $post, $is_update ) {
    
        echo '
    <pre>';
        print_r($meta);
        echo '</pre>
    ';
    
        $meta_array = array();
        $repeater_array = array();
    
        foreach ($meta as $key => $value) {
    
            // カスタムフィールド名が "商品名" だった時
            if ($key == '商品名') {
                // ACF用のフィールドキーに変換
                $meta_array['post_title'] = $value;
    
            // カスタムフィールド名が "画像1" だった時
    		}elseif($key == '画像1') {
                // ACF用のフィールドキーに変換
                $meta_array['image1'] = $value;
            // カスタムフィールド名が "画像2" だった時
    		}elseif($key == '画像2') {
                // ACF用のフィールドキーに変換
                $meta_array['image2'] = $value;
            // カスタムフィールド名が "画像3" だった時
    		}elseif($key == '画像3') {
                // ACF用のフィールドキーに変換
                $meta_array['image3'] = $value;
    
            // カテゴリの値を代入
            } elseif($key == 'カテゴリ') {
                $cate = $value;
            } elseif($key == 'サブカテゴリ') {
                $subcate = $value;
    
            // ACF以外のメタデータはそのまま通す
            } else {
                $meta_array[$key] = $value;
    
            }
    
        }
    
        // カテゴリとサブカテゴリをカンマ区切りにしてダブルクォーテーションで囲む
        $meta_array['tax_product_category'] = '"'.$cate.",".$subcate.'"';
    
        echo '
    <pre>';
        print_r($meta_array);
        echo '</pre>
    ';
    
        return $meta_array;
    
    }
    add_filter( 'really_simple_csv_importer_save_meta', 'rsci_meta_filter', 10, 3 );
    ?>

    モデレーター Takuro Hishikawa

    (@hissy)

    post_titleはカスタムフィールドではないので無理です

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「Really Simple CSV Importer でのフィルタ機能の使い方」には新たに返信することはできません。