In meinem Plugin möchte ich dem Media Manager zwei Schaltflächen hinzufügen (links neben "In Beitrag einfügen" im Abschnitt "Medien-Symbolleiste-Primär") und eine jQuery-Aktion damit verbinden.
- Erste - Mit der Schaltfläche "Alle auswählen" können Sie alle verfügbaren Bilder (nur Bilder) auswählen, abhängig vom ausgewählten Optionswert (z. B. Alle Medienelemente, in diesen Beitrag hochgeladen usw.). Wenn also "Alle Medienelemente" ausgewählt ist - alle verfügbaren Bilder werden ausgewählt, wenn "Auf diesen Beitrag hochgeladen" ausgewählt ist - werden nur Bilder ausgewählt, die an den aktuellen Beitrag angehängt sind.
- Die zweite Option - "Benutzerdefiniertes Einfügen in Post" - ruft Bilddaten für alle ausgewählten Bilder (Bildquelle in voller Größe, Alternativtext, Größe usw., die verfügbar sind) ab und ermöglicht das Einschließen in zusätzlichen HTML-Code. Geben Sie den Code an den Tinymce-Editor zurück.
Der zurückgegebene Code für die zweite Schaltfläche könnte folgendermaßen aussehen:
<ul>
<li><img src="full/path/to/001.jpg" alt="alt text 1" /></li>
<li><img src="full/path/to/002.jpg" alt="alt text 2" /></li>
<li><img src="full/path/to/003.jpg" alt="alt text 3" /></li>
<li><img src="full/path/to/004.jpg" alt="alt text 4" /></li>
<li><img src="full/path/to/005.jpg" alt="alt text 5" /></li>
</ul>
Soweit ich weiß, besteht die einzige Möglichkeit darin, die entsprechende Backbone-Ansicht zu überschreiben, aber daneben ist das alles, was ich jetzt weiß.
Danke für die Hilfe.
quelle
Ich habe keine vollständige Antwort auf Ihre Frage, aber hier ist ein guter Anfang. Um den neuen Media Manager anzupassen, sollten Sie den Javascript-Backbone-Code in studieren
wp-includes/js/media-views.js
. Zum Beispiel ist hier ein kleines Plugin, das der Symbolleiste "Von URL einfügen" die Schaltfläche "Alle auswählen" hinzufügt:custom.php
::custom.js
::Für die Schaltfläche "Benutzerdefiniert in Beitrag einfügen" empfehle ich, stattdessen den Galerie-Shortcode zu verwenden. Die Benutzeroberfläche ist bereits vorhanden, um die gewünschten Bilder auszuwählen und den Shortcode an der richtigen Stelle in tinymce einzufügen. Alles was Sie tun müssen, ist Ihr eigenes Galerie-Shortcode-Format zu schreiben.
Schauen Sie sich die
gallery_shortcode
Funktion in anwp-includes/media.php
und verwenden Sie denpost_gallery
Filter.quelle
Thomas Griffin hat mit dem New Media Image Uploader ein Plugin-Beispiel für die Arbeit mit dem New Media Manager erstellt.
quelle
Ich bin gerade auf einen Fall in WP 3.6 gestoßen, in dem die (sehr nützliche) Antwort von aesqe dazu führt, dass Bilder aufgrund von Backbones, die
state.get("selection")._byId
beide enthalten,id
undcid
für jedes ausgewählte Bild zweimal eingefügt werden .Ändern,
state.get("selection")._byId
umstate.get("selection").models
dies für mich zu beheben, während die Attribute jedes Objekts beibehalten werden.Hoffentlich erspart dies jemandem etwas Frust. Ich hätte dies als Kommentar anstatt als Antwort gepostet, aber leider habe ich keinen Ruf.
quelle