web-dev-qa-db-ja.com

メディアアップローダを使ってアップロードされた画像のすべてのURLを取得する

プラグイン内に複数の画像をアップロードするには、WPメディアアップローダを使用する必要があります。私はこのコードが単一の画像に対してうまく機能することを発見しました。 multiple: falseをtrueに変更してみたところ、メディアアップローダーで複数の画像を選択できました。私の問題は、アップロードされたすべての画像のURLを取得する方法がわからないことです。添付の​​コードに含まれている画像だけではありません。 var uploaded_image = image.state().get('selection').first();var uploaded_image = image.state().get('selection')に変更してから、このコードで配列を反復処理しようとしましたが、成功しませんでした。

var uploaded_image = image.state().get('selection').first();
            jQuery.each(uploaded_image, function (i) {
                console.log(uploaded_image[i].toJSON().url);
            });

元のコード

jQuery(document).ready(function($){
$('#upload-btn').click(function(e) {
    e.preventDefault();
    var image = wp.media({
        title: 'Nahranie obsahu',
        // mutiple: true if you want to upload multiple files at once
        multiple: false
    }).open()
        .on('select', function(e){
            // This will return the selected image from the Media Uploader, the result is an object
            var uploaded_image = image.state().get('selection').first();

            // We convert uploaded_image to a JSON object to make accessing it easier
            // Output to the console uploaded_image
           // console.log(uploaded_image);
            var image_url = uploaded_image.toJSON().url;
            // Let's assign the url value to the input field
            $('#image_url').val(image_url);
        });
});
});
1
martin49

この質問からコードを使って動いた https://stackoverflow.com/questions/14847668/get-url-of-freshly-uploaded-image-from-wp3-5-media-アップローダ

たぶん誰かがそれを役に立つと思うでしょう。このコードは、新たに未変換の画像すべてのURLをコンソールに記録します。

jQuery(document).ready(function($){
$('#upload-btn').click(function(e) {
    e.preventDefault();
    var image = wp.media({
        title: 'Nahranie obsahu',
        // mutiple: true if you want to upload multiple files at once
        multiple: true
    }).open()
        .on('select', function(e){
            // This will return the selected image from the Media Uploader, the result is an object
            var uploaded_images = image.state().get('selection');

            var attachment_ids = uploaded_image.map( function( attachment ) {
                attachment = attachment.toJSON();
                console.log(attachment.url);
            }).join();

            // We convert uploaded_image to a JSON object to make accessing it easier
            // Output to the console uploaded_image
           // console.log(uploaded_image);
            var image_url = uploaded_image.toJSON().url;
            // Let's assign the url value to the input field
            $('#image_url').val(image_url);
        });
});
});
1
martin49