Wie füge ich JavaScript zu einem benutzerdefinierten Block von WordPress Gutenberg hinzu?
Lesezeit: 3 Minuten
Drikus Roor
Mit benutzerdefinierten Blöcken von WordPress versuche ich derzeit, eine Popover-Komponente zu erstellen, die eine Schaltfläche und einen versteckten Inhalt enthält. Der versteckte Inhalt sollte erscheinen, wenn der Benutzer auf die Schaltfläche klickt oder darüber fährt (auf der Frontend der Webseite, nicht im Block-Editor).
Wenn ich jedoch eine hinzufüge onClick oder onHover auf die Schaltfläche, wird der Ereignishandler nicht ausgeführt.
Darüber hinaus versuchen, die zu verwenden useState Hook zum Speichern des Anzeigestatus des Popovers bringt meinen Blockeditor zum Absturz.
Das ist, was mein save Der Methodencode sieht derzeit so aus:
Die Antwort auf diese ähnliche (?) Frage scheint darauf hinzudeuten, dass dies nicht möglich ist, da das Frontend nur “statisches HTML” rendert und das Javascript entfernt. Wenn dies der Fall ist, was wäre ein guter Ansatz, um Benutzerinteraktivität (Hover/Klick-Ereignisse oder sogar mögliche http-Anforderungen) im Frontend von benutzerdefinierten WordPress-Blöcken zu erstellen?
Seit WordPress 5.9.0 müssen Sie viewScript verwenden, um die Frontend-JS-Datei in der block.json zu definieren:
Im Moment konnte ich das Problem lösen, indem ich ein benutzerdefiniertes Skript in das WordPress-Plugin einreihte, das ich für meine benutzerdefinierten Blöcke erstellt habe:
Aber wenn jemand eine bessere Lösung findet, würde mich das sehr interessieren!
Hallo Drikus, können Sie mir die richtigen Dateispeicherorte mitteilen. Ich meine, wo ist save.js und wo ist index.js
– Assad Khan
24. Mai 2022 um 18:09 Uhr
Hallo @AsadKhan, da wir hier über einen Gutenberg-Block sprechen, gehe ich davon aus index.php Und save.js befinden sich im Stammverzeichnis Ihres Plugins (siehe auch Hier ). Das Skript, das ich laden wollte, war drin popover/scripts/index.js, kann aber überall sein, wo Sie es haben möchten. Stellen Sie einfach sicher, dass Ihre wp_enqueue_script Funktion zeigt auf den richtigen Pfad.
– Drikus Roor
24. Mai 2022 um 18:40 Uhr
Wenn ich deinen Code kopiere, wird es funktionieren? Da ich neu in WP bin, tut mir die Kiddesh-Frage wirklich leid
– Assad Khan
24. Mai 2022 um 18:46 Uhr
14421600cookie-checkWie füge ich JavaScript zu einem benutzerdefinierten Block von WordPress Gutenberg hinzu?yes