プラグイン内に複数の画像をアップロードするには、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);
});
});
});
この質問からコードを使って動いた 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);
});
});
});