Průvodce hooky, akcemi a filtry ve WordPressu
Vítejte u „Průvodce hooky, akcemi a filtry ve WordPressu“. V rozsáhlém světě vývoje pro WordPress patří porozumění hookům, akcím a filtrům k základům, bez kterých plný potenciál této platformy nevyužijete.
Hooky tvoří páteř všech úprav WordPressu – díky nim můžete jeho funkce plynule měnit a rozšiřovat. Akce umožňují spustit konkrétní úlohu v klíčovém okamžiku běhu webu, filtry naopak dovolují pracovat s daty a vrátit je upravená. Ať už začínáte, nebo máte za sebou roky vývoje, tento podrobný průvodce vám nabídne cenné souvislosti i praktické příklady, jak skutečnou flexibilitu hooků, akcí a filtrů ve WordPressu využít. Pojďme se do toho pustit a otevřít si neomezené možnosti vývoje pro WordPress.

Hooky
Hooky jsou základem vývoje pluginů a šablon pro WordPress. Jsou to místa, kam vývojáři mohou „zaháknout“ vlastní kód na přesně určeném místě a změnit chování WordPressu bez zásahu do souborů jádra.

Existují dva typy hooků ve WordPressu: akce a filtry
Hooky ve WordPressu se dělí na dva základní typy: akce (actions) a filtry (filters). Akce umožňují provést konkrétní úlohu v předem definovaném bodě běhu WordPressu, filtry naproti tomu dovolují upravit a vrátit jakákoli data, která WordPress zpracovává.
Akce:
Pomocí akce upravíte výchozí chování konkrétní funkce tak, že si z WordPressu vytáhnete potřebné informace a provedete s nimi požadovanou operaci. Jakmile se akce vykoná, není nutné WordPressu vracet žádná data.
K přidávání akcí slouží funkce add_action(). WordPress nabízí několik funkcí pro práci s akcemi, nejčastěji se používají tyto:
- add_action(): připojí zadanou funkci k hooku v rámci procesu do_action.
- remove_action(): umožňuje odebrat funkci připojenou ke konkrétnímu akčnímu hooku.
- do_action(): místo, kde se funkce navázané na hook skutečně vykonají.
- has_action(): ověří, zda je akce zaregistrovaná.

V kódu WordPressu se akce definují takto:
do_action( 'action_name', );
Zaháknutím do akce do_action(‘wp_head’) spustíte vlastní kód pokaždé, když WordPress zpracovává hlavičku webu. Tato akce nevyžaduje žádné další argumenty.
Kompletní zápis:
add_action( string $hook_name, callable $callback, int $priority = 10, int $accepted_args = 1 ): true
Přehled všech akcí:
https://codex.wordpress.org/Plugin_API/Action_Reference
https://developer.wordpress.org/reference/functions/add_action/
Filtry:
Filtr mění výchozí chování konkrétní funkce. Pracuje s daty, která dostane, a vrací je WordPressu ještě předtím, než se zobrazí v prohlížeči.
Příklady:
- add_filter(): připojí funkci k hooku
- remove_filter(): odebere funkci připojenou ke konkrétnímu filtrovacímu hooku
- doing_filter(): zjistí, který filtr se právě vykonává
- has_filter(): ověří, zda je filtr zaregistrovaný
V kódu WordPressu se filtry definují takto:
apply_filters( 'filter_name', 'value_to_be_filtered', );
Řetězec filter_name je název filtru, proměnná value_to_be_filtered obsahuje hodnotu, která se má odfiltrovat a vrátit, a další proměnná může stejně jako u akcí předat doplňkové argumenty.
Příklad: do filtru apply_filters( ‘admin_footer_text‘ , string $text ) se lze zaháknout a upravit text zobrazený v patičce administrace. Od WordPressu 5.4 se v patičce administrace ve výchozím nastavení objevuje věta Thank you for creating with WordPress.
|
Hooky ve WordPressu |
|
| Akce | Filtry |
| Akce slouží ke spuštění vlastních funkcí v konkrétním bodě běhu jádra WordPressu. | Filtry slouží k úpravě nebo přizpůsobení dat, se kterými pracují jiné funkce. |
| Akce se v kódu WordPressu definují a vytvářejí funkcí do_action( ‘action_name’ ). | Filtry se v kódu WordPressu definují a vytvářejí funkcí apply_filters( ‘filter_name’, ‘value_to_be_filtered’ ). |
| Akcím se také říká akční hooky (action hooks). | Filtrům se také říká filtrovací hooky (filter hooks). |
| Do akcí se lze zaháknout pouze funkcemi určenými pro akce, například add_action() nebo remove_action(). | Do filtrů se lze zaháknout pouze funkcemi určenými pro filtry, například add_filter() nebo remove_filter(). |
| Funkce akcí nemusí svým callbackům předávat žádné argumenty. | Funkce filtrů musí svým callbackům předat alespoň jeden argument. |
| Funkce akcí mohou provést jakoukoli úlohu včetně změny toho, jak WordPress funguje. | Funkce filtrů existují pouze proto, aby upravily data, která jim filtr předá. |
| Funkce akcí by neměly nic vracet. Mohou ale výstup vypsat pomocí echo nebo pracovat s databází. | Funkce filtrů musí své změny vrátit jako výstup. I když filtr nic nezmění, musí vrátit vstup v nezměněné podobě. |
| Akce mohou vykonat prakticky cokoli, pokud je kód platný. | Filtry by měly pracovat izolovaně, aby nezpůsobily nechtěné vedlejší efekty. |
Zvládnutí hooků, akcí a filtrů ve WordPressu otevírá nekonečné možnosti, jak svůj web upravit a vylepšit. Když pochopíte, jak hooky fungují, využijete sílu akcí a flexibilitu filtrů, přizpůsobíte funkce i vzhled webu přesně svým potřebám. S tím, co jste se v tomto průvodci dozvěděli, máte vývoj na WordPressu plně ve svých rukou. Pusťte se tedy do experimentování a připravte svým uživatelům skvělý zážitek. Využijte všestrannost hooků, akcí a filtrů ve WordPressu a odemkněte skutečný potenciál svého webu. Příjemné kódování!
Zajímá vás budoucnost WordPressu? Přečtěte si tento článek!