WordPress ekosystém

Hook (WP)

Místo v kódu WordPressu, kam lze vložit vlastní funkci (action nebo filter hook)

(Action / Filter hook)

Co je hook

Hook je místo v kódu WordPressu, kam se dá zapojit vlastní funkce, aniž by se zasahovalo do jádra systému. Jádro na určeném místě zavolá, že je řada na ostatních. Kdo se do toho volání předem přihlásil, dostane slovo.

Akce a filtry

Hooky jsou dvojího druhu a rozdíl mezi nimi stojí za zapamatování. Akce znamená, že se v danou chvíli něco navíc provede: odešle se objednávka a spolu s ní odletí událost do měřicí vrstvy. Filtr naopak nic nepřidává, jen upraví hodnotu, která jím projde a putuje dál. Titulek stránky, text tlačítka v košíku, obsah odchozího e-mailu.

Proč to má vědět marketér

Většina úprav, které si u vývojáře objednáváte, se dělá přes hooky. Přidání skriptu do hlavičky, událost při odeslání formuláře, změna popisku u dopravy. Když se to udělá takhle, jádro WordPressu zůstane nedotčené a úprava přežije aktualizaci. Na stejném principu stojí pluginy, proto jich může běžet dvacet vedle sebe a nepřekážejí si.

Hooky sám nepíšu, píše je vývojář, ale mluvit jejich jazykem se mi vyplácí při zadávání měření. Místo obecného přání vědět, kdy někdo nakoupí, řeknu, ve které chvíli má událost vzniknout a co v ní má být, a rovnou se ptám, jestli půjde poslat do Tag Manageru místo natvrdo do stránky. Kde kód nakonec bude bydlet, jestli v functions.php nebo v pluginu, je pak už jen dohoda.

Časté otázky

Jaký je rozdíl mezi akcí a filtrem?

Akce v daný okamžik něco navíc provede. Filtr sáhne na hodnotu, která jím prochází, upraví ji a pošle dál.

Musím hookům rozumět, když nejsem vývojář?

Stačí vědět, že existují. Zadání pak formulujete tak, aby se úprava nepsala do jádra ani napřímo do souborů šablony.

Přežijí úpravy přes hook aktualizaci WordPressu?

Zpravidla ano, protože jádro zůstává nedotčené. Autor pluginu nebo šablony ale může hook přejmenovat či zrušit a pak úprava přestane fungovat.