Jak používat WordPress Akce Hooks v přizpůsobení motivu
WordPress dětské motivy poskytují relativně snadný způsob, jak přizpůsobit vzhled a dojem z tématu. Pokud vám možnosti motivu neposkytují adekvátní volby designu, stačí přidat nové pravidlo do výchozího souboru šablony stylů podřízeného tématu nazvaného style.css. Ale co se stane, když chcete upravit funkčnost motivu? To je jeden z případů, kdy WordPress akce přijdou na vaši pomoc.
WordPress stal se tak populární částečně protože jeho vysoké přizpůsobitelnosti. WordPress Core je načten s různými háky, které umožňují vývojářům upravit nebo rozšířit výchozí funkce. Kromě toho můžeme zahrnout vlastní háčky v našich tématech a zásuvných modulech pomáhat ostatním vývojářům snadno přizpůsobit náš kód jejich potřebám.
O aplikaci WordPress Hooks
WordPress háčky fungují poněkud podobné háčkům v reálném životě v tom smyslu, že můžete chytit ryby, které chcete, na správném místě, pokud je správně používáte.
Můžeš odstranit zachycenou funkci (např. můžete odstranit panel pro správu aplikace WordPress pro uživatele s nízkou úrovní), můžete nechte to neporušené a posílit s vlastní funkcí (např. můžete přidat další nabídky nebo oblasti widgetů k tématu), nebo můžete přepsat (např. můžete změnit chování základní funkce).
V aplikaci WordPress existují dva různé typy háčků: akcí a filtrů. V tomto příspěvku se podíváme na to, jak můžeme využít akce háky v přizpůsobení motivu.
Jak funguje WordPress Hooks
Chcete-li použít velmi jednoduchý jazyk, akcí to naznačují něco se stalo během životního cyklu stránky WordPress: některé části webu byly načteny, byly nastaveny určité možnosti nebo nastavení, byly inicializovány pluginy nebo widgety atd..
Filtry se liší od akcí v jejich povaze. Jsou zvyklí předávat data, a upravovat, spravovat nebo zachytit před jejím vykreslením na obrazovku nebo uložením uživatelských dat do databáze.
V každé významné mezník životního cyklu stránky WordPress je buď akce nebo filtr hák, na který můžeme Chcete-li změnit výchozí chování, přidejte náš vlastní kód našich potřeb.
Určité akce a filtry spuštěné během požadavku závisí na tom, která stránka byla uživatelem požadována: například v jednom požadavku na post jsou k dispozici háčky související s jednotlivými příspěvky, ale háčky související s jinými částmi webu (např. Oblast správce) nejsou.
Najít akční háčky
Referenční příručka kodexu WordPress poskytuje podrobný přehled o akcích probíhajících v různých požadavcích. Důležité je, že chceme-li splnit úkol, který potřebujeme zavěste na správné místo, ne dříve nebo po ní, jinak nebude akce dokončena.
Tak například pokud chceme přidejte kód Google Analytics na web potřebujeme zavěste naši akci těsně před načtením zápatí.
Pokud hovoříme o přizpůsobení motivu, mohou háky akce pocházet ze dvou různých míst: od WordPress Core a samotné téma. Tam jsou témata, která nemají háčky vůbec, ale jiní poskytují vývojářům s některými nebo mnoha - je to vždy téma autor volba. Výchozí motiv Twenty Fifteen má pouze jeden háček akce pro přizpůsobení zápatí pod názvem 'dvacetpětnáctinásobků'.
Pokud chcete procházet zdrojový kód, můžete také snadno najít háčky na akce. Akce háčky jsou přidány do kódu s funkcí do_action () WordPress.
Pokud spustíte rychlé vyhledávání výrazu 'do_action' v pokročilém editoru kódu - jako jsem to udělal v Eclipse níže - můžete vidět seznam míst, kde můžete své vlastní funkce připojit do jádra. Hledal jsem v / wp-zahrnuje / složku, ale můžete také spustit vyhledávání / wp-admin / složka obsahující háčky akce související s ovládacím panelem WordPress (oblast admin).
Dobrá věc je, že názvy akčních háčků jsou obvykle docela samo-vysvětlující, ale existuje obvykle pěkný komentář uvnitř kódu který vám může poskytnout více informací o tom, zda je daný akční hák dobrý z důvodu, pro který ho chcete použít.
Například kódový komentář před akcí „widgets_init“ říká, že to “požáry po registraci všech výchozích widgetů aplikace WordPress”. Pokud se podíváte na kód před tímto háčkem akce, můžete před ním najít všechny výchozí inicializace widgetů WP - takže si můžete být jisti, že komentář neležel, a chcete-li zaregistrovat svůj vlastní widget, to bude správné místo.
V mnoha případech nám zdrojový kód poskytuje mnohem více informací než Kodex, takže může být vhodné naučit se v něm rychle navigovat.
Přidejte své vlastní akce
Pokud chcete přidat vlastní akci, musíte vytvořit vlastní funkci a vázat tuto funkci na konkrétní hák akce pomocí funkce add_action () WordPress. Vlastní akce přidané s funkcí add_action () jsou obvykle na místě když jádro volá příslušnou funkci do_action ().
Podívejme se na jednoduchý příklad.
Jak najít akci, kterou potřebujete
Řekněme, že chcete přidat vlastní favicon na vaše stránky. Za prvé, musíte najít správné akce hák můžete svázat své vlastní funkce.
Přemýšlejme. Pokud byste chtěli přidat favicon na prostou stránku HTML, kam byste to dal? Samozřejmě, musíte ho umístit dovnitř
části HTML souboru s následujícími značkami:Takže akční hák, který potřebujete, musí být vztahující se k zatížení sekce.
(1) Otevřete Referenci akcí a podívejte se, co nabízí. Máme štěstí, jako bychom procházeli jednotlivými akcemi, můžeme najít pouze jeden, wp_head, který na základě svého jména má možnost vztahovat se k načítání
sekce.(2) Jistě, pojďme zkontrolujte dokumentaci v Kodexu WordPress. Kodex to doporučuje “použijete tento háček tím, že budete mít výstup funkce echo do prohlížeče”, tak se teď zdá být perfektní pro nás. Podívejme se na to ve zdrojovém kódu.
(3) Vzhledem k tomu, že tento háček nesouvisí s oblastí admin, budeme muset spustit naše vyhledávání v / wp-zahrnuje / složky. Hledáme-li slovo „wp-head“, dostaneme mnoho výsledků, protože tuto specifickou akci používá WP Core mnohokrát.
Musíme hledat místo, kde se definuje, takže hledejte výraz do_action ('wp_head'. Všimněte si, že závorky jsme nedokončili, protože si nemůžeme být jisti, zda má tato akce parametry nebo ne.
Eclipse vrací pouze jeden výsledek, který lze nalézt uvnitř /wp-includes/general-template.php soubor. Komentář před definicí akce hák říká, že to “tiskne skripty nebo data v hlavičce na přední straně”, takže teď můžeme být mrtví wp_head je akční hák, který potřebujeme.
Kontrola parametrů
Když přidáte své vlastní akce, musíte také mít jistotu, zda háček, který chcete použít, má parametry nebo ne. Můžete to snadno zjistit pomocí funkce do_action ().
Syntaxe funkce do_action () je následující:
do_action ('name_of_action' [, $ parametr1, $ parametr2,…])
Vyžaduje se pouze název akce, parametry jsou volitelné. Pokud najdete argumenty v příslušném volání funkce do_action (), musíte zahrnout je do deklarace vlastní funkce, kterou vytvoříte.
Pokud nenajdete žádnou, pak vaše vlastní funkce musí fungovat bez argumentů. V definici do_action () háku akce wp_head nejsou žádné parametry.
Porovnejme to s háčkem akce, který má parametr. Hák akce nazvaný 'wp_register_sidebar_widget' má jeden parametr, který musíte vždy předat vlastní funkci, kterou připojujete k háku.
Podívejme se na rozdíl v syntaxi do_action () těchto dvou případů:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
V prvním případě neexistuje žádný parametr, takže vlastní funkce bude používat následující syntaxi:
funkce my_function_without_parameters () …
V druhém případě je jeden parametr, který musíte vždy předat jako argument do deklarace vlastní funkce:
funkce my_function_with_parameters ($ widget) …
Jak zavěsit vaši vlastní funkci
Teď víme všechno, co potřebujeme. Vytvořme si vlastní funkci, která zobrazí favicon na našich stránkách.
Nejprve vytvořte novou funkci bez jakýchkoli argumentů a poté ji zavěste pomocí háčku akce wp_head pomocí funkce add_action () WordPress.
funkce custom_add_favicon () echo '"; add_action ('wp_head', 'custom_add_favicon');
Musíš předejte jméno akčního háku funkce add_action () jako první argument, pak musíte přidejte název vlastní funkce.
Toto jsou dva požadované parametry add_action (). Má také dva volitelné parametry, přednost a přijaté argumenty. Podívejme se, jak je používat.
Definovat priority
V mnoha případech se stává, že na stejný háček je vázáno více než jedna akce. Tak který bude proveden jako první? To je místo, kde můžeme použít $ priority nepovinný parametr funkce add_action ().
Prioritu přidáváme jako kladné celé číslo, výchozí hodnota je 10. Chceme-li, aby byla akce provedena brzy, dáme jí nižší hodnotu, chceme-li ji provést později, dáme jí vyšší hodnotu.
Pokud si tedy myslíme, že favicon musí být brzy, můžeme rozšířit naše předchozí volání add_action () následujícím způsobem:
add_action ('wp_head', 'custom_add_favicon', 5);
Vezměte prosím na vědomí, že priority musí být vždy nastavit relativně k ostatním uživatelským funkcím které používají stejný akční hák.
Přidat počet přijatých argumentů
Musíte použít počet přijatých argumentů v případě, že použijete akční hák, který má parametry. Podívejme se na příklad, který jsme použili dříve.
Akční hák 'wp_register_sidebar_widget' má jeden parametr, takže když svázáme naši vlastní funkci s tímto háčkem, musíme to zahrnout jako argument, když voláme funkci add_action ().
Náš kód v tomto případě bude vypadat takto:
funkce my_sidebar_widget_function ($ widget) // Váš kód add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Všimněte si, že musíme také přidat prioritu (Vybrali jsme zde výchozí 10), abychom se ujistili, že WordPress ví, co každý parametr znamená. Pokud tuto prioritu vynecháme, WordPress by mohl předpokládat, že priorita 1 je prioritou což není pravda, protože udává počet přijatých argumentů.
Závěr
Můžete provést mnoho experimentů s akčními háky v přizpůsobení motivu. Můžete například přidat vlastní skripty (JS) a styly (CSS) s háčkem akce wp_enqueue_scripts nebo kódem služby Google Analytics s háčkem akce wp_footer.
Můžete nejen přidejte své vlastní akce, ale můžete také odstranit úplné funkce z jádra WordPress s použitím funkce remove_action (), která používá stejnou logiku jako add_action ().
Pokud jste autorem tématu a chcete vytvořit rozšiřitelné téma, může to být dobrý nápad přidat vlastní háky akce do příslušných souborů šablony s funkcí do_action ().
Pokud to chcete udělat, pečlivě zvážit parametry, které ostatní vývojáři kdo bude používat vaše téma bude muset projít jako argumenty když chtějí zavěsit své vlastní funkce.
Při navrhování umístění vlastního tématu háčků tématu nezapomeňte, že to nedává moc smysl zahrnout vlastní téma háky na stejných místech, kde WordPress Core sám má své vlastní háčky.