タグ: Really Simple CSV Importer

  • RS CSV Importer Media Add-On 1.0.0 をリリースしました。

    最近はconcrete5でおなじみの菱川さんが作った、Really Simple CSV Importerというプラグインがありまして。よくお世話になってます。

    この間、画像データを投稿に紐付ける必要がありまして。

    出来れば画像はWordPressのメディアとして管理して、カスタムフィールドに画像のIDを突っ込めればなー。カスタムフィールドにURL突っ込めばダウンロードしてこれないかなーって要件がありましてた。

    ということで、Really Simple CSV Importerのアドオンプラグインを作りました。

    RS CSV Importer Media Add-Onというまんまな名前のプラグインです。

    一昨年くらいにフォークしてその機能をつけたりしてたのですが、URLをそのまま使いたいこともあったりで、アドオンにしておいた方がいろいろ便利だなと言うことで。

    使い方

    Really Simple CSV Importerをインストールして有効化した後、RS CSV Importer Media Add-Onをインストールして有効化して下さい。

    その後はReally Simple CSV Importerの使い方と一緒です。カスタムフィールドの欄に画像などWordPressのメディアとして扱えるファイルのURLが存在した場合、ダウンロードして記事のカスタムフィールドの値をメディアのIDに変更します。

    CSVのサンプルはこちらを参考にして下さい。https://github.com/torounit/rs-csv-importer-media-addon/blob/master/sample/linux.csv

    IDにして保存するので、モンキーレンチのキタジマさんSmart Custom Fieldsとも相性が良かったりします。

    インポートするファイルの拡張子の設定

    really_simple_csv_importer_media_ext2typeというフィルターフックを作りました。

    これにフックすると、インポートするファイルの拡張子を変更することが出来ます。これで、画像はダウンロードするけどPDFへのURLはそのまま、みたいなことも出来るようになってます。

    Sample Code
    add_filter('really_simple_csv_importer_media_ext2type', 'really_simple_csv_importer_media_ext2type');
    
    function really_simple_csv_importer_media_ext2type( $types ) {
        return array(
            'image'       => array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' ),
            'audio'       => array( 'mp3', 'ogg', 'wav', 'wma' ),
            'video'       => array( 'mov', 'mp4', 'mpeg', 'mpg', 'ogm', 'ogv', 'wmv' ),
            'document'    => array( 'doc', 'docx', 'odt', 'pages', 'pdf', 'psd' ),
            'spreadsheet' => array( 'ods', 'xls', 'xlsx' ),
            'interactive' => array( 'swf', 'key', 'ppt', 'pptx', 'odp' ),
            'text'        => array( 'asc', 'csv', 'tsv', 'txt' ),
            'archive'     => array( 'dmg', 'gz', 'rar', 'tar', 'tgz', 'zip'),
            'code'        => array( 'css', 'htm', 'html', 'php', 'js' ),
        );
    }

    使い方wp_ext2typeへのフックと変わらないです。というか内部的にはこれ使ってます。なのでデフォルトでは、wp_ext2typeが許可しているモノを全て許可します。svgなどWordPressがアップロードを許可してないモノはまた別に設定が必要です。WordPressの管理画面からアップロード可能なモノのみ受け付けます。

    レポジトリ

    Github: https://github.com/torounit/rs-csv-importer-media-addon

    バグなどあったらプルリク下さいー。