web-dev-qa-db-ja.com

新しい3.5メディアでの画像アップロードコールバック

私のテーマのフロントエンドで新しい3.5メディアアップローダを使っています( this exampleをベースにしています)。 'Select'ボタンが押された後に画像に何かをしたいときはとても簡単です。

file_frame.on('select', function() {
    // Get all attachments
    var attachments = file_frame.state().get('selection').toJSON();

    // Do stuff with attachments
});

しかし、添付ファイルをアップロードした直後にその添付ファイルを使用して何かしたい場合はどうなりますか?何かのようなもの:

file_frame.on('upload', function() {
    // Do stuff with attachments
});

私は'wp-includes/js/media-models.js''wp-includes/js/media-views.js'に何も役に立つとは思いませんでした。

私はそれらのファイルで見つかったたくさんのイベントを添付しようとしました:

'add', 'url', 'select', 'ready', 'escapeHandler', 'keydown', 'attach', 'open', 'close', 'escape', 'recordTab', 'updateIndex', 'activate', 'dismiss', 'remove', 'reset', 'uploading', 'deactivate', 'create', 'render', 'change:content', 'scan', 'prepare', 'content:render:upload', 'content:render', 'content', 'updateIndex', 'recordTab', 'change:uploading', 'finish', 'done', 'upload', 'uploaded', 'save', 'saved','change:compat', 'compat'

しかし、これらすべてのイベントは、私がこれを必要とするときには発生しません。

ありがとうございます。

5
fornyhucker

wp-includes/js/plupload/wp-plupload.jsで発生しているFileUploadedイベントがあります。

あるいは(そしておそらくより良い方法では)あなたはあなた自身の成功コールバックでwp.Uploaderを拡張したいかもしれません。

(function($){

    $.extend( wp.Uploader.prototype, {
        success : function( file_attachment ){
            console.log( file_attachment );
        }
    });
})(jQuery);
9
Jörn Lund