Űrlap betöltése rejtett felületen és dinamikusan betöltött tartalomban
Mit tegyél, ha Barba.js vagy hasonló könyvtár miatt az űrlapok az oldalváltás után nem működnek.
Ha az oldalad tartalmát Barba.js-hez hasonló könyvtár tölti be dinamikusan, előfordulhat, hogy az űrlapok az új oldal betöltése után nem működnek. Az ok: a Gravity Forms a szkriptjeit és stíluslapjait csak ott tölti be, ahol az adott oldalon szükség van rájuk, a dinamikusan beillesztett tartalom szkriptjeit pedig az ilyen könyvtárak nem mindig futtatják le újra.
Példa: űrlap betöltése Barba.js mellett
Szekció neve “Példa: űrlap betöltése Barba.js mellett”A kód két részből áll:
- Egy művelet minden frontend oldalon betölti az egyik űrlapot megjelenítés nélkül, így a szkriptek és stílusok is betöltődnek. A példában a 100-as azonosítójú űrlapot töltjük be, ezt cseréld a sajátodéra.
- Egy másik művelet a lábrészben megadja a Barba.js-nek, hogy a következő oldal minden szkriptjét futtassa le, így a Gravity Forms szkriptjei is elindulnak.
/** * Ez a művelet egy adott űrlapot betölt minden frontend oldalon megjelenítés nélkül, * így a szkriptek és a stílusok is betöltődnek. */add_action( 'init', function(){ if ( is_admin() ) { return; } if ( ! class_exists( 'GFFormDisplay' ) ) { require_once( GFCommon::get_base_path() . '/form_display.php' ); } // Előkészíti az űrlapot a megjelenítéshez, de nem jeleníti meg. GFForms::get_form( 100 );}, 100 );
/** * Ez a művelet megadja a Barba.js-nek, hogy a következő oldal minden szkriptjét futtassa le, * így a Gravity Forms szkriptjei is lefutnak. */add_action( 'wp_footer', function(){?><script> barba.hooks.beforeEnter(({ next }) => { const js = next.container.querySelectorAll("script"); js.forEach(script => { window.eval(script.innerHTML); }); });</script><?php} );Ha másfajta rejtett felülettel dolgozol, a kódot valószínűleg módosítanod kell.
Hová tedd a kódot
Szekció neve “Hová tedd a kódot”A kód mehet az aktív téma functions.php fájljába, egy saját funkciókat tartalmazó bővítménybe, egy saját kiegészítőbe vagy kódrészlet-kezelő bővítménybe.
Készült: