Gibt es eine Möglichkeit, wp_enqueue_script () für Inline-Skripte zu verwenden?
Ich mache das, weil mein Inline-Skript von einem anderen Skript abhängt und ich die Flexibilität haben möchte, es einzufügen, nachdem es geladen wurde.
Es ist auch ein Inline-Skript, weil ich PHP-Variablen in das Javascript übergebe (wie Theme-Pfad, etc.)
Danke im Voraus.
wp-enqueue-script
chrisjlee
quelle
quelle
wp_add_inline_script()
wp_add_inline_script mit WordPress JQuery verwendenMachen Sie es einfach nicht zu einem Inline-Skript und übergeben Sie die dynamischen Parameter als Variablen. Otto hat einen tollen Leitfaden geschrieben, wie man das effektiv macht.
Mit WordPress 3.3 wird dies auch noch leistungsfähiger: https://core.trac.wordpress.org/ticket/11520
quelle
Diese Lösung ähnelt der Antwort von @ scribu , folgt jedoch der Form von
wp_enquque_script()
und platziert das Skript in der Kopfzeile, wenn die Abhängigkeiten in der Kopfzeile enthalten sind.Hinweis: Hierbei werden anonyme Funktionen verwendet. In PHP-Versionen vor 5.3 kann dies jedoch problemlos in eine Klasse konvertiert werden.
quelle
Seit WordPress 4.5 können Sie wp_add_inline_script () verwenden :
quelle
Der bessere Weg, den ich gefunden habe, ist die Verwendung von
wp_localize_script()
, wie @scribu vorgeschlagen hat.Normalerweise habe ich mich für die Verwendung von Inline-Javascript entschieden, weil ich meinem Skript einige PHP-Variablen hinzufügen musste. Dies kann mit gelöst werden
wp_localize_script()
. Ich werde ein Beispiel geben:Sie haben ein Array
$aFoo
mit einigen Optionen und müssen es an ein Skript übergeben.Inline-Skript verwenden:
Verwenden von
wp_localize_script()
:Dann
pathToScript/script.js
wäre:Auf diese Weise benötigen Sie nie mehr Inline-Skripte.
quelle
Scribu ist absolut richtig. Wie auch immer, ich möchte ein paar Infos hinzufügen:
Ich möchte, dass meine Funktion ein Skript einmal ausgibt, egal wie oft es aufgerufen wird. Da es sich um eine inhaltsbezogene Funktion handelt, kann ich nicht auf Hooks warten. Ich habe Scribus-Infos und einige Lektüren des WP-Kerns verwendet, um dies zu erreichen:
Mit dieser Methode kann ich ein Inline-Skript einmal drucken. In meinem Fall habe ich eine Funktion, die einen Share-Button erzeugt und ein Skript für alle Buttons benötigt. Aber nur einmal.
quelle
echo
Inline-Skript-Ansatz ist, wie das Twenty Seventeen-Thema zumindest an einer Stelle konstruiert wurde. Und ich benutze diese Technik auch. Funktioniert hervorragend und ermöglicht es Ihnen, sich an verschiedenen Orten einzuklinken.