Úvodná » WordPress » Ako používať WordPress Action Hooks v prispôsobení témy

    Ako používať WordPress Action Hooks v prispôsobení témy

    WordPress detské témy dávajú relatívne jednoduchý spôsob prispôsobenia vzhľadu a pocitu témy. Ak voľby tému neposkytujú dostatočné voľby návrhu, môžete jednoducho pridať nové pravidlo do predvoleného súboru šablón štýlov podadresára pod názvom style.css. Ale čo sa stane, keď budete chcieť upraviť funkčnosť motívu? To je jeden z prípadov, kedy WordPress akcie prichádzajú k vašej pomoci.

    WordPress sa stal tak populárnym čiastočne kvôli vysokej prispôsobiteľnosti. WordPress Core je nabitý rôznymi hákmi, ktoré umožňujú vývojárom upraviť alebo vylepšiť predvolené funkcie. Navyše, môžeme to zahrnúť vlastné háčiky v našich témach a pluginy Pomôžte iným vývojárom ľahko prispôsobiť náš kód ich potrebám.

    O WordPress Hooks

    Háčky WordPress pracujú podobne ako háčiky v reálnom živote v tom zmysle, že môžete chytiť ryby, ktoré chcete, na správnom mieste, ak ich správne používate.

    Môžeš odstráňte funkciu chytenú funkciu (napríklad môžete odstrániť správcovskú lištu WordPress pre používateľov s nízkou úrovňou), môžete nechajte to neporušené a zvýšiť s vašimi vlastnými funkciami (napríklad môžete do témy pridať ďalšie ponuky alebo oblasti widgetov), ​​alebo môžete prepísať ho (napríklad môžete upraviť správanie funkcie jadra).

    Existujú dva rôzne typy háčikov v programe WordPress: akcie a filtre. V tomto príspevku sa pozrieme na to, ako môžeme využívať akčné háčiky pri prispôsobovaní tém.

    Ako fungujú WordPress Hooks

    Použitie veľmi jednoduchého jazyka, akcie uveďte to niečo sa stalo počas životného cyklu stránky WordPress: niektoré časti stránky boli načítané, niektoré možnosti alebo nastavenia boli nastavené, zásuvné moduly alebo miniaplikácie boli inicializované atď..

    filtre sú odlišné od akcie vo svojej podstate. Na to sú zvyknutí prechádzať údaje cez, a modifikovať, spravovať alebo zachytiť pred zobrazením na obrazovke alebo ukladaním údajov používateľov do databázy.

    Na každom významnom orientačnom bode životného cyklu stránok WordPress je buď akčné alebo a filter háčik, ku ktorému môžeme pridajte vlastný kód na zmenu predvoleného správania podľa našich potrieb.

    Určité akcie a filtre spustené počas žiadosti závisia od stránky, ktorú požadoval používateľský agent: napríklad v jednej žiadosti o príspevok sú k dispozícii háčiky súvisiace s jednotlivými príspevkami, ale háčiky súvisiace s inými časťami stránky (napr. Oblasť administrátora) nie sú.

    Nájdite akčné háčiky

    Odkaz na akciu WordPress Codex poskytuje podrobný prehľad o činnostiach, ktoré prebiehajú prostredníctvom rôznych požiadaviek. Dôležité je, že ak chceme splniť úlohu, musíme to zasuňte na správne miesto, nie pred alebo po ňom, inak nebude táto akcia dokončená.

    Takže napríklad, ak chceme pridajte kód Google Analytics na web musíme zavrhneme akciu priamo pred načítaním päty.

    Ak hovoríme o prispôsobení tém, akčné háčiky môžu pochádzať z dvoch rôznych miest: od WordPress Core a samotnú tému. Existujú témy, ktoré nemajú vôbec žiadne háčiky, iné však poskytujú vývojárom niekoľko alebo veľa - vždy je to výber autora témy. Štandardná Twenty-fifteen Theme má iba jeden akčný hák pre prispôsobenie päty pod názvom "twentyfifteen_credits".

    Ak chcete prechádzať zdrojový kód, ľahko nájdete aj akčné háčiky. Akčné háčiky sa pridávajú do kódu pomocou funkcie do_action () WordPress.

    Ak spustíte rýchle vyhľadávanie výrazu "do_action" v pokročilejšom editore kódov - ako som to urobil v časti Eclipse nižšie - môžete vidieť zoznam miest, kde môžete zaviesť vlastné funkcie do jadra. Hľadal som v / WP-zahŕňa / priečinok, ale môžete tiež spustiť vyhľadávanie / Wp-admin / priečinok obsahujúci akčné háčiky súvisiace s hlavným panelom programu WordPress (oblasť administrátora).

    Dobrá vec spočíva v tom, že názvy akčných háčikov sú zvyčajne celkom jasné, ale existujú zvyčajne pekný komentár v kóde ktoré vám môžu poskytnúť viac informácií o tom, či daný akčný háčik je dobrý z dôvodu, prečo ho chcete použiť.

    Napríklad kód komentár pred akcie "widgets_init" hák hovorí, že to “po spustení všetkých predvolených widgetov WordPress”. Ak sa pozriete na kód pred týmto akčným háčikom, môžete pred ním nájsť všetky predvolené miniaplikácie WP miniaplikácií - aby ste si boli istí, že tento komentár nebola, a ak chcete zaregistrovať svoj vlastný widget, bude to správne miesto.

    V mnohých prípadoch nám zdrojový kód poskytuje oveľa viac informácií ako kódex, takže môže byť dobrý nápad naučiť sa rýchlo navigovať v ňom.

    Pridať vlastné akcie

    Ak chcete pridať svoju vlastnú akciu, musíte to urobiť vytvorte vlastnú funkciu a spojiť túto funkciu s určitým akčným háčikom pomocou funkcie add_action () WordPress. Vlastné akcie pridané s funkciou add_action () sú zvyčajne spustené na mieste keď jadro zavolá príslušnú funkciu do_action ().

    Pozrime sa na jednoduchý príklad.

    Ako nájsť akčný hák, ktorý potrebujete

    Povedzme, že chcete pridať svoje vlastné favicon na vaše stránky. Najprv musíte nájsť ten správny akčný hák, s ktorým môžete spájať vlastnú funkčnosť.

    Rozmýšľajme. Ak ste chceli pridať favicon na obyčajnú HTML stránku, kde by ste ju umiestnili? Samozrejme, musíte ju umiestniť do vnútra časť súboru HTML s nasledujúcou značkou:

      

    Takže akčný háčik, ktorý potrebujete, musí byť súvisiace s načítaním časť.

    (1) Otvorte referenciu akcie a pozrite sa, čo ponúka. Máme šťastie, akoby sme prechádzali akciami, môžeme nájsť iba jeden, wp_head, ktorý na základe svojho mena má možnosť súvisieť s načítaním časť.

    (2) Určite, poďme skontrolujte dokumentáciu v kódexe WordPress. Kódex to odporúča “tento háčik používate tým, že svoju funkciu odošlete do prehliadača”, tak sa teraz zdá, že je pre nás ideálne. Pozrime sa však na zdrojový kód.

    (3) Pretože tento háčik nemá vzťah k oblasti administrácie, budeme musieť spustiť naše vyhľadávanie v / WP-zahŕňa / zložky. Ak budeme hľadať slovo "wp-head", získame veľa výsledkov, pretože táto špecifická akcia sa používa WP Core mnohokrát.

    Musíme hľadať miesto, kde sa definuje, a preto hľadajte výraz do_action ('wp_head'. Všimnite si, že sme nedokončili zátvorky, pretože ešte nemôžeme byť istí, či má táto akcia parametre alebo nie.

    Eclipse vráti iba jeden výsledok, ktorý sa nachádza vo vnútri /wp-includes/general-template.php súboru. Komentár pred definíciou akčného háku to hovorí “vytlačí skripty alebo údaje v hlavičke na prednom konci”, takže teraz môžeme byť mŕtvi wp_head je akčný háčik, ktorý potrebujeme.

    Kontrola parametrov

    Keď pridáte vlastné akcie, musíte si byť istí, či háčik, ktorý chcete použiť, má parametre alebo nie. Môžete to jednoducho zistiť pri pohľade na funkciu do_action ().

    Syntax funkcie do_action () je nasledujúci:

     do_action ('name_of_action' [, $ parameter1, $ parameter2, ...]) 

    Vyžaduje sa iba názov akcie, parametre sú voliteľné. Ak nájdete argumenty v príslušnej výzve funkcie do_action (), musíte to zahrnúť ich do vyhlásenia vlastnej funkcie, ktorú vytvoríte.

    Ak nenájdete žiadne, potom vaša vlastná funkcia musí fungovať bez argumentov. V definícii do_action () akčného háka wp_head neexistujú žiadne parametre.

    Porovnajme ho s akčným hákom, ktorý má parameter. Akčný hák s názvom "wp_register_sidebar_widget" má jeden parameter, ktorý musíte vždy prejsť na vlastnú funkciu, ktorú viažete na háčik.

    Pozrime sa na rozdiel v syntaxe do_action () v dvoch prípadoch:

     do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);

    V prvom prípade neexistuje žiadny parameter, takže vlastná funkcia použije nasledujúcu syntax:

     funkcia my_function_without_parameters () ... 

    V druhom prípade existuje jeden parameter, ktorý musíte vždy prejsť ako argument do vyhlásenia vašej vlastnej funkcie:

     funkcia my_function_with_parameters ($ widget) ... 

    Ako zavesiť svoje vlastné funkcie v

    Teraz poznáme všetko, čo potrebujeme. Vytvorme našu vlastnú funkciu, ktorá bude zobrazovať favicon na našich stránkach.

    Najskôr vytvorte novú funkciu bez akýchkoľvek argumentov a potom ju viazajte na akčný hák wp_head pomocou funkcie add_action () WordPress.

     funkcia custom_add_favicon () echo ',;  add_action ('wp_head', 'custom_add_favicon');

    Musíte prejsť názov akčného háku na funkciu add_action () ako prvý argument, potom musíte pridajte názov vlastnej funkcie.

    Toto sú dva požadované parametre add_action (). Má tiež dva voliteľné parametre, priorita a prijaté argumenty. Pozrime sa, ako ich používať.

    Definujte priority

    V mnohých prípadoch sa stane, že na rovnakom háku je viazaných viac ako jedna akcia. tak ktorá z nich bude vykonaná ako prvá? To je miesto, kde môžeme použiť $ optional optional parameter funkcie add_action ().

    Prioritu pridáme ako kladné celé číslo, predvolená hodnota je 10. Ak chceme, aby bola akcia vykonaná skoro, dáme jej nižšiu hodnotu, ak chceme, aby bola vykonaná neskôr, dáme jej vyššiu hodnotu.

    Takže ak si myslíme, že favikón musí byť tam skoro, môžeme rozšíriť náš predchádzajúci hovor add_action () nasledujúcim spôsobom:

     add_action ('wp_head', 'custom_add_favicon', 5); 

    Upozorňujeme, že priority musia byť vždy nastaviť relatívne k ostatným vlastným funkciám ktoré používajú ten istý akčný hák.

    Pridajte počet prijatých argumentov

    Musíte pridať počet prijatých argumentov v prípade, že použijete akčný hák, ktorý má parametre. Pozrime sa na príklad, ktorý sme použili predtým.

    Akčný háčik 'wp_register_sidebar_widget' má jeden parameter, takže keď spojíme našu vlastnú funkciu s týmto háčikom, musíme to zahrnúť aj ako argument pri volaní funkcie add_action ().

    Náš kód v tomto prípade bude vyzerať takto:

     funkcia my_sidebar_widget_function ($ widget) // Váš kód add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1); 

    Všimnite si, že musíme tiež pridať prioritu (tu sme si vybrali predvolenú hodnotu 10), aby sme sa uistili, že program WordPress vie, čo znamená každý parameter. Ak sme vynechali prioritu, WordPress môže predpokladať, že 1 je prioritou čo nie je pravda, pretože naznačuje počet prijatých argumentov.

    záver

    Môžete urobiť veľa experimentov s akčnými hákmi pri prispôsobovaní tém. Napríklad môžete pridať svoje vlastné skripty (JS) a štýly (CSS) pomocou akčného háku wp_enqueue_scripts alebo pomocou kódu Google Analytics pomocou akčného háku wp_footer.

    Môžete to nielen vy pridajte svoje vlastné akcie, ale môžete tiež odstrániť kompletné funkcie z jadra WordPress s použitím funkcie remove_action (), ktorá používa rovnakú logiku ako add_action ().

    Ak ste autor témy a chcete vytvoriť rozšíriteľnú tému, môže to byť dobrý nápad pridajte vlastné vlastné háčiky do príslušných súborov šablón s funkciou do_action ().

    Ak chcete tak urobiť, dôkladne premýšľajte o parametroch ostatných vývojárov kto použije vašu tému bude musieť prejsť ako argumenty keď chcú pripojiť svoje vlastné funkcie.

    Pri navrhovaní umiestnení vlastných háčikov na tému nezabudnite nie je rozumné zahrnúť vlastné tému háčiky na rovnakých miestach, kde samotný WordPress Core má svoje vlastné háčiky.