Untuk membantu Anda memulai, fungsi dasar dan menimpa sejauh yang saya tahu saat ini. Mungkin ada solusi yang lebih baik, tapi saya hanya punya dua hari dengan 3,5 belum:
// open modal - bind this to your button
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor )
wp.media.editor.open( ##unique_id_here## );
// backup of original send function
original_send = wp.media.editor.send.attachment;
// new send function
wp.media.editor.send.attachment = function( a, b) {
console.log(b); // b has all informations about the attachment
// or whatever you want to do with the data at this point
// original function makes an ajax call to retrieve the image html tag and does a little more
};
// wp.media.send.to.editor will automatically trigger window.send_to_editor for backwards compatibility
// backup original window.send_to_editor
window.original_send_to_editor = window.send_to_editor;
// override window.send_to_editor
window.send_to_editor = function(html) {
// html argument might not be useful in this case
// use the data from var b (attachment) here to make your own ajax call or use data from b and send it back to your defined input fields etc.
}
Ini bukan jawaban kerja yang lengkap. Anda harus mendefinisikan dan melacak bidang input Anda sendiri dll. Ini hanya akan membantu Anda memulai. Jika Anda memiliki pertanyaan yang lebih konkret, tanyakan saja.
Dan pastikan untuk menetapkan kembali fungsi asli ketika skrip Anda selesai.
Ditarik dari komentar:
Bagaimana saya bisa mendengarkan acara tutup lightbox?
// add listener:
wp.media.view.Modal.prototype.on('close', function(){ console.log('triggered close'); }
Berikut ini adalah tutorial kecil tentang cara menggunakan pengunggah media WP 3.5 dalam opsi tema. Itulah yang saya buat dan itu bekerja sempurna untuk saya. Beri tahu saya jika Anda menemukan solusi yang lebih baik.
Inilah cara saya menerapkan kode dalam opsi tema saya:
Memperbarui
Kode ini hanya berfungsi pada halaman edit posting. Untuk membuatnya berfungsi pada halaman opsi tema yang perlu Anda tambahkan
wp_enqueue_media();
sumber
Saya melakukan hampir sama itu belum siap tetapi berfungsi:
di php:
Javascript:
Ini memungkinkan Anda untuk mengunggah dan mengirim url gambar (dengan ukuran berapa pun) ke
<input>
elemen.Saya mencoba melakukan ini sebagai pengaturan dan berfungsi, Hanya mereka yang saya butuhkan sekarang adalah cara yang dapat diandalkan untuk mengirim lampiran ID ke
<input>
sumber
Saya pikir @janw sudah benar, tapi saya tidak bisa membuat satu hal berfungsi. Jan menyisipkan tombol perpustakaan media menggunakan:
dan kemudian mencegah tindakan default menggunakan:
Masalah yang saya temui adalah memasukkan tombol media dengan cara ini tidak memberikan id "default_featured_image_button" ke tautan. Bahkan tidak menambahkan id pada tautan yang dimasukkan. Jadi ini yang saya lakukan untuk membuatnya bekerja.
Saya menambahkan baris ini ke fungsi panggilan balik kotak meta saya tepat setelah bidang input saya:
Saya kemudian enqueued file jquery kustom saya dan file css thickbox, juga di file functions.php saya, menggunakan:
Akhirnya file image-set.js saya termasuk yang berikut:
Anda akan mencatat bahwa saya menggunakan variabel untuk menyimpan nama dan id bidang input yang tepat sebelum tautan yang memanggil jQuery. Dengan cara ini kode ini dapat digunakan berulang kali pada halaman yang sama. Anda hanya perlu menetapkan kelas untuk semua tombol atau menggunakan id individu untuk tombol di jquery Anda seperti yang saya lakukan. Saya harap ini membantu seseorang karena jawaban Jan membantu saya.
sumber
Saya tahu bahwa ini adalah pos lama, tetapi saya hanya ingin membagikan temuan saya:
Untuk membuka editor media, kami memanggil fungsi ini
editor media pada dasarnya akan memeriksa editor tinyMCE (
window.tinymce
), lalu Quicktags (window.QTags
), untuk meneruskan konten.Untuk pendekatan saya untuk mendapatkan konten, saya ditugaskan
window.QTags
dengan objek kustom, yang memilikiinsertContent()
metode:Referensi: phpxref
sumber