Sziasztok,
Az lenne a kérdésem, hogy JavaScript nélkül lehet-e olyat csinálni egy bővítményben, hogy közvetlenül a nyitó body elem után saját, egyedi html tartalmat szúrjak be, és hogy mindez minden egyes aloldalon megtörténjen?
Ha igen, akkor valaki leírná, hogy mi ennek a menete?
Előre is köszönöm a segítséget!
Szia!
Igen lehet, ez hívják hook-okanak a WordPress-ben. A WordPress sablonok nagyon nagy része úgy épül fel, hogy a header.php -rész tartalmazza a body nyitó tagot, tehát csak itt kell változtatni.
Keresd ki a a sablonfájlban a header.php fájt, ott keresd ki, hol van a body -s rész vége, az után:
Oda szúrd be ezt:
<?php do_action('body_utan_beszuras');?>
Ez fogja lefuttatni itt azt a függvényt, amit most a functions.php-ba szúrunk be, ami így néz ki:
function body_utan_tartalom(){
echo 'Teszt';
}
add_action('body_utan_beszuras', 'body_utan_tartalom');
Most itt az echo-val egy teszt et nyomtattunk ki, példának. De ha nem kell megjelenítani, csak kódrészlet kerül be, akkor nem kell echo. Van olyan sablon, ahol ilyen hook-pontokat alapból betesznek sok helyre (így működik a woocommerce aloldalai, kosarai is, ott is sok “beszúrási” pont van.) Maga a működés lényege ennyi, létrehozol a sablonban egy do_action függvény hívást, amit a functions.php-ban valósítazs meg, és amit az add_action hívással kötsz össze.
Köszönöm szépen a választ. A megoldás biztosan működik így, de itt a hangsúly most azon lenne, hogy bővítményen belül kellene beszúrni a html tartalmat. Tehát, ha én hozom létre a bővítményt, akkor azon belül szeretném ezt elérni valahogy, persze csak ha ez lehetséges. Ha nem, akkor maradna a JavaScript.
Ezt a kódot a bővítményen belül is beteheted, tahát magába a bővítménybe, azt a részt ami a functions.php-ba kerül. Úgy is működni fog! Ha azonban nincs “hook” hívás az adott sablonban a body után, akkor azt kézzel mindenképp be kell tenni. Már magát a do_action -függvényhívást, így jelölöd ki a helyét, hogy ott fusson le… Mert az sokszor nincs. Sőt hát jellemzően nem szokott lenni, ahogy én eddig néztem.
Áucs. Akkor az elég bizonytalan. Más megoldás nem létezik, ami teljesen biztosan működik sablontól függetlenül és bővítményen belülről is megvalósítható?
Szerintem nem… mert a WordPress ugye a sablon alapján jeleníti meg a tartalmat, amiben vannak alap “hook” hívások. Ilyen például a wp_head (link: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_head ) vagy ugyan ez a fotternél (https://developer.wordpress.org/reference/hooks/wp_footer/) , tehát ezek mindenhol vannak, alapból magában a sablonban, kell hogy legyenek a notmális működéshez. De a body tag utáni ilyen hook szerintem nincs alapesetben. Bár én vagy 2 éve nem foglalkoztam ezzel, remélem nem írok hülyeséget… SORRY ha nem jól mondom!
1 kedvelés
Nagyon szépen köszi a válaszokat és a segítséget Akkor marad a JavaScript.