WordPressプラグイン [CSV Importer] にコメントメタデータのインポート機能を追加する。


WordPressのプラグインにCSV Importerというものがあります。
https://wordpress.org/plugins/csv-importer/
操作方法が簡単だし、いい意味で枯れているので、結構使う機会が多いです。

普段使いの際には、機能的に問題なく満足なのですが、先日「コメントのメタデータ」をインポートしたいという局面があり、このプラグインにはコメントメタデータをインポートする機能が見つかりませんでした。

そこでコードを書き足してコメントメタデータもインポートできるようにしました。
そのときのメモ。

書き換えるのはcsv_importer.phpのみです。

csv_importer.php
/*517行目付近*/

        $comments_meta=array();//=== このコードを追加 ===

        foreach ($data as $k => $v) {
            // comments start with cvs_comment_
            if (    preg_match('/^csv_comment_([^_]+)_(.*)/', $k, $matches) &&
                    $v != '') {
                $comments[$matches[1]] = 1;

                /* ===以下のコードを追加=== */
                if(preg_match('/^csv_comment_[^_]+_meta_(.*)/', $k, $matches_meta)) {
                    $comments_meta[$matches[1]][]=$matches_meta[1];
                }
                /* ===コード追加ここまで=== */

            }
        }


・・・・・・


/*573行目付近*/
            $id = wp_insert_comment($new_comment);
            if ($id) {
                $count++;

                /* ===以下のコードを追加=== */
                if($comments_meta[$cid]){
                    foreach($comments_meta[$cid] AS $meta_key){
                        if($data["csv_comment_{$cid}_meta_{$meta_key}"]){
                            $meta_key=convert_chars($meta_key);
                            $meta_value=convert_chars($data["csv_comment_{$cid}_meta_{$meta_key}"]);

                            add_comment_meta($id,$meta_key,$meta_value,false);
                        }
                    }
                }
                /* ===コード追加ここまで=== */

            } else {


・・・・・・


上記のようにコードを追加します。

使い方

コメントメタデータ追加用フィールド
csv_comment_*meta(meta_key)

*はコメントの番号と合わせてください。

※基本的な操作方法は元プラグインのを参考にしてください。
https://wordpress.org/plugins/csv-importer/other_notes/

追加したファイルをgithubにあげてみました。

一応、上記のコードを追加したファイルをgithubに追加してみました。

そのままダウンロードしたりして、プラグインフォルダにアップしてもよいですし、CSV_Importerをすでにインストールしている場合は、csv_importer.phpを上書きしてもOKです。
プラグインを「CSV Importer」として、アップデートをすると追記部分が削除されてしまう可能性がありますのでご注意ください。

そんなわけで、
サイトを構築していちばん最初に記事を一括インポートする必要があるときなど、一回限りの使用のときにオススメです。

参考サイト

(元のプラグイン)
https://wordpress.org/plugins/csv-importer/