Na początek podstawowe funkcje i przesłonięcia, o ile wiem obecnie. Mogą być lepsze rozwiązania, ale miałem tylko dwa dni z wersją 3.5:
// 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.
}
To nie jest pełna odpowiedź robocza. Musisz samodzielnie zdefiniować i śledzić swoje pola wejściowe itp. To powinno zacząć. Jeśli masz bardziej konkretne pytania, po prostu zapytaj.
I pamiętaj, aby ponownie przypisać oryginalne funkcje po zakończeniu skryptu.
Wyciągnięto z komentarzy:
Jak mogę odsłuchać zakończenie zdarzenia lightbox?
// add listener:
wp.media.view.Modal.prototype.on('close', function(){ console.log('triggered close'); }
Oto mały samouczek dotyczący korzystania z programu do przesyłania multimediów WP 3.5 w opcjach motywu. Właśnie to wymyśliłem i działa idealnie dla mnie. Daj mi znać, jeśli znajdziesz jakieś lepsze rozwiązanie.
Oto jak zaimplementowałem kod w moich opcjach motywu:
Aktualizacja
Ten kod działa tylko na stronie edycji postu. Aby działał na stronie opcji motywu, musisz go dodać
wp_enqueue_media();
źródło
Robię prawie to samo, jeszcze nie jest gotowe, ale działa:
w php:
Javascript:
Umożliwi to przesłanie i przesłanie adresu URL obrazu (dowolnego rozmiaru) do
<input>
elementu.Próbuję to zrobić jako ustawienie i to działa, tylko thig, którego teraz potrzebuję, to niezawodny sposób na przesłanie identyfikatora załącznika do
<input>
źródło
Myślę, że @janw ma to wszystko w porządku, ale nie udało mi się sprawić, by jedna rzecz działała. Jan wstawia przycisk biblioteki multimediów, używając:
a następnie wyklucza domyślną akcję, używając:
Problem, na który natrafiłem, polega na tym, że wstawienie przycisku multimediów w ten sposób nie przypisuje identyfikatora „default_featured_image_button” do łącza. W rzeczywistości nie dodaje żadnego identyfikatora do wstawionego łącza. Tak właśnie zrobiłem, aby to zadziałało.
Dodałem ten wiersz do mojej funkcji wywołania zwrotnego meta-boxu zaraz po polu wejściowym:
Następnie umieściłem w kolejce mój niestandardowy plik jquery i plik css aplikacji thickbox, również w moim pliku functions.php, używając:
Wreszcie mój plik image-set.js zawierał następujące elementy:
Zauważysz, że użyłem zmiennych do przechowywania nazwy i identyfikatora pola wejściowego, które jest tuż przed linkiem wywołującym jQuery. W ten sposób kod ten może być wielokrotnie używany na tej samej stronie. Musisz po prostu przypisać klasę do wszystkich przycisków lub użyć indywidualnych identyfikatorów dla przycisków w twojej jquery, tak jak ja. Mam nadzieję, że to komuś pomaga, ponieważ zrobiła mi to odpowiedź Jana.
źródło
Wiem, że to stary post, ale chcę tylko podzielić się swoimi odkryciami:
Aby otworzyć edytor multimediów, wywołujemy tę funkcję
edytor multimediów w zasadzie sprawdzi, czy nie ma tinyMCE editor (
window.tinymce
), a następnie Quicktags (window.QTags
), aby przekazać zawartość.Do mojego podejścia do pobierania treści przypisałem
window.QTags
obiekt niestandardowy, który mainsertContent()
metodę:Odniesienie: phpxref
źródło