Egyedi html tartalom beszúrása globálisan, minden egyes aloldalhoz


#1

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!


#2

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.


#3

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.


#4

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.


#5

Á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ó?


#6

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!


#7

Nagyon szépen köszi a válaszokat és a segítséget :slight_smile: Akkor marad a JavaScript.