Saya telah memasukkan pengunggah media WP 3.5 ke dalam widget dengan menjalankan JavaScript ini saat tombol diklik:
var frame = wp.media( {
title : 'Widget Uploader',
multiple : false,
library : { type : 'image' },
button : { text : 'Select Image' }
} );
frame.on( 'close', function() {
var attachments = frame.state().get( 'selection' ).toJSON();
imageWidget.render( widget_id, widget_id_string, attachments[0] );
} );
frame.open();
return false;
Itu memberi saya modal yang memiliki tab "Unggah File" dan "Pustaka Media", tetapi saya juga menginginkannya memiliki tab "Sisipkan Dari URL" yang Anda dapatkan saat mengklik tombol "Tambahkan Media" saat mengedit posting. /halaman.
Saya telah menghabiskan beberapa jam menggali di web, membaca kode sumber dan dan menonton presentasi Daryl Koopersmith di backend pengunggah , tetapi belum dapat mengetahuinya.
Bisakah seseorang mengarahkan saya ke arah yang benar? Apakah ada parameter yang bisa saya sampaikan ke wp.media () untuk memasukkannya, atau haruskah saya menggunakan salah satu tampilan / model bawaan yang menyertakannya?
Jawaban:
Saya telah menggali kode sumber untuk alasan yang sama; Saya ingin menambahkan "Pengaturan Tampilan Lampiran" ke bingkai "pilih" default. Sejauh yang saya tahu, ini tidak dapat dilakukan dengan mengirimkan parameter ke wp.media (), seperti yang kita semua inginkan. wp.media saat ini memiliki dua bingkai ("posting" dan "pilih"), dan pandangan yang menyertainya adalah preset.
Pendekatan yang saya cari sekarang adalah memperluas media.view.mediaFrame untuk membuat bingkai baru (berdasarkan bingkai "pilih") yang mencakup bagian-bagian tampilan yang saya butuhkan. Jika ini berfungsi, saya akan memposting kode.
EDIT:
Ian, saya mendapatkan fitur yang saya inginkan untuk bekerja dan mengambil waktu untuk mencari tahu milik Anda. wp.media () tidak cukup modular seperti yang seharusnya. Ini hanya menerima nilai 'select' dan 'post' untuk frame, dengan 'select' sebagai default, jadi Anda tidak dapat membuat objek frame baru. Sebagai gantinya, Anda perlu memperluas salah satu dari dua objek bingkai (semua ini ada di /wp-includes/js/media-views.js), yang juga agak kikuk. Menambahkan bagian dari UI adalah proses beberapa langkah. Anda bisa mulai dengan Pilih dan tambahkan, tetapi untuk Anda, saya memilih untuk memulai dengan kode di bingkai Posting dan mengambil barang-barang galeri. Ini kode saya, berfungsi tetapi tidak diuji berat. Mungkin ada ruang untuk merampingkan juga.
Ini menggabungkan kode dari wp.media.view.MediaFrame.Post dengan yang dari media.view.MediaFrame.Select, sesuaikan dengan fakta bahwa ini dijalankan di luar lingkup asli. Nilai untuk teks adalah berbagai tombol, dan Anda dapat referensi objek pelokalan Anda sendiri jika Anda inginkan. Nilai 'filterable' di konstruktor Perpustakaan (di createStates ()) menentukan jenis media mana yang akan didukung.
Setelah Anda memperluas objek Pilih dengan pendekatan ini, cukup instantiate dengan cara yang sama Anda saat ini dan tambahkan handler kustom Anda ketika gambar dipilih. Sisipan dari Url mungkin memunculkan peristiwa yang berbeda dari saat mengambil dari media yang diunggah. Mungkin akan lebih baik untuk instantiate frame Anda terlebih dahulu, sebenarnya, dan kemudian memperpanjangnya, sehingga frame media lain pada halaman tersebut tidak akan terpengaruh, tetapi saya belum mencoba ini.
Semoga itu bisa membantu-
sumber
Dari memeriksa kode sumber tampaknya modal media umum tidak mendukung "Sisipkan dari URL". Satu-satunya cara saya mendapatkan tab itu adalah dengan menentukan jenis bingkai "posting":
Kelemahannya adalah judul modal yang ditentukan diabaikan.
sumber
Intinya adalah bahwa tab mengembalikan URL eksternal untuk dimasukkan secara langsung ke dalam pos, sementara widget seharusnya mengembalikan ID media. Pada dasarnya gambar eksternal perlu ditransfer ke server.
Lihat bagaimana / apakah plugin Grab & Save melakukan apa yang Anda inginkan. ( via )
sumber