Ich frage mich, ob es möglich ist, die Methoden des anonymen api
Objekts in zu erweitern wp-admin/js/customize-control.js
. Ich muss eine dieser Methoden mit meiner eigenen benutzerdefinierten Logik überschreiben, aber ich vermute, dass dies nicht möglich ist, da sie in einen sofort aufgerufenen Funktionsausdruck eingeschlossen ist:
/* globals _wpCustomizeHeader, _wpMediaViewsL10n */
(function( exports, $ ){
// code
})( wp, jQuery );
Soweit ich sehen kann, kann ich den Prototyp nicht aus dem Fensterobjekt erweitern, da er anonym ausgeführt wird und nicht über verfügbar ist window.wp.customize
. Irgendeine Idee, ob so etwas möglich ist? In der Dokumentation / Beschreibung der .toggle () -Methoden wird sogar erwähnt, dass dies überschrieben wird: https://github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110 , aber ich Ich bin mir nicht sicher, ob sie bedeuten, dass einfach die gesamte JS-Datei gegabelt, die WP-Version aus der Warteschlange entfernt und die eigene in die Warteschlange gestellt wird oder ob sie etwas anderes bedeuten.
Beachten Sie, dass dies anscheinend möglich sein sollte, dies wp.customize.{method}.extend({ foo: // replace method foo here })
gilt jedoch nur für die öffentlichen Basisklassen / -objekte, nicht für die inwp-admin/js/customize-control.js
api
anonym, ist es nur ein Synonym fürwp.customize
(siehe Zeile 3), auf das global zugegriffen werden kann. Es sieht jedoch so aus, als würde das für Steuerelemente verwendete Noch-Objekt-Modell dieready
Funktion aufrufen,initialize
sodass möglicherweise keine Chance (dh immer zu spät) besteht, Methoden zu überschreiben. Was möchten Sie erweitern?wp.customize
diesem Objekt und füge Funktionen hinzu. siehe hier für ein Quellenbeispiel - github.com/bueltge/Documentation/blob/master/js/…Antworten:
Ich werde meinen kleinen Kommentar zu Ihrer Frage verbessern. Aber nochmal der Hinweis; Ich bin kein JS-Experte. Die folgenden Quellenhinweise wurden nur beim Spielen mit dem Customizer für verschiedene Überprüfungen verwendet, z. B. für meine Sandbox .
wp.customize
Das Verständnis der Benutzeroberfläche des WP-Theme-Customizers konzentriert sich auf das Verständnis des Javascript-Objekts wp.customize. Das
wp.customize
Objekt ist wichtig und sollte beim Start festgelegt werden.Live-Beispiel
Das folgende kleine Beispiel zeigt dies. Zuerst habe ich die Variable
api
auf das Objekt des Customizers gesetzt. Danach setze ich meine benutzerdefinierten Felder aufapi
und erweitere diese mit einer kleinen jQuery-Quelle, um das Ergebnis für die Live-Vorschau zu aktualisieren.Einstellungen und Steuerelemente
Steuerobjekte werden in
wp.customize.control
und Einstellungsobjekte in gespeichertwp.customize
. Die Werteklasse hat viele Funktionen, die Ihnen helfen können.Benutzerdefinierte Einstellungen
Mit diesen Funktionen können wir unsere benutzerdefinierten Einstellungen verbessern.
auch für ein Array verwendbar
Bekommen
Sehen Sie das Ergebnis in der Konsole.
einstellen
Sie können die Einstellwerte auch über die Funktion ändern
set
.Holen Sie sich mit dem Steuerelement als Objekt
Hilfreiche Quelle
quelle