Kako koristiti WordPress Akcijske kuke u temi Customization
WordPress dječje teme daju relativno jednostavan način prilagodbe izgleda i osjećaja teme. Ako vam opcije teme ne pružaju adekvatne dizajnerske mogućnosti, možete jednostavno dodati novo pravilo zadanoj datoteci stilova podređene teme pod nazivom style.css. Ali što se događa kad i ti to želiš izmijeniti funkcionalnost teme? To je jedan od slučajeva kada vam WordPress akcija dođe u pomoć.
WordPress je postao toliko popularan dijelom zbog svoje visoke prilagodljivosti. WordPress jezgra je učitana s različitim udicama koje omogućuju programerima izmjenu ili poboljšanje zadane funkcionalnosti. Štoviše, dopušteno nam je uključiti prilagođene kuke u našim temama i dodatcima pomoći drugim programerima da jednostavno prilagode naš kod svojim potrebama.
O WordPress Hooks
WordPress kuke djeluju nešto slično stvarnim kukama u smislu da možete uhvatiti ribu koju želite na pravom mjestu ako ih pravilno koristite.
Možeš uklonite uhvaćenu funkciju (npr. možete ukloniti WordPress administracijsku traku za korisnike niže razine), možete ostavite ga netaknutim i poboljšati sa svojom funkcionalnošću (npr. možete dodati više izbornika ili područja widgeta temi) ili možete poništiti (npr. možete mijenjati ponašanje osnovne funkcije).
Postoje dvije različite vrste kuka u WordPressu: akcije i filteri. U ovom postu ćemo pogledati kako možemo iskoristite akcijske kuke u prilagodbi teme.
Kako radi WordPress
Koristiti vrlo jednostavan jezik, akcije ukazuju na to nešto se dogodilo tijekom životnog ciklusa WordPress stranice: određeni dijelovi web-lokacije su učitani, određene opcije ili postavke su postavljene, dodatci ili widgeti su inicijalizirani, itd..
filteri se razlikuju od akcije u svojoj prirodi. Navikli su proslijediti podatke, i modificirati, upravljati ili presijecati prije prikazivanja na zaslonu ili spremanja korisničkih podataka u bazu podataka.
Na svakom značajnom orijentiru životnog ciklusa WordPress stranice postoji ili radnja ili a filtar kuka na koju možemo dodajte naš prilagođeni kôd kako biste izmijenili zadano ponašanje našim potrebama.
Određene radnje i filteri koji se izvode tijekom zahtjeva ovise o stranici koju je zatražio korisnički agent: na primjer, u jednom zahtjevu za slanje su dostupne kuke povezane s pojedinačnim postovima, ali kukice povezane s drugim dijelovima web-lokacije (npr. Područje administratora) nisu.
Nađi akcijske kuke
Referenca akcije za WordPress Codex daje detaljan pregled akcija koje se provode kroz različite zahtjeve. Važno je da ako želimo izvršiti zadatak koji nam je potreban kuka na pravo mjesto, ne prije ili poslije njega, inače radnja neće biti dovršena.
Na primjer, ako želimo dodajte naš kôd usluge Google Analytics na web-lokaciju moramo spojite našu akciju neposredno prije učitavanja podnožja.
Ako govorimo o prilagodbi tema, akcijske kuke mogu dolaziti s dva različita mjesta: od WordPress Core i sama tema. Postoje teme koje uopće nemaju kuke, ali druge nude programerima neke ili više njih - to je uvijek izbor autora teme. Zadana Dvadeset petnaest tema ima samo jednu akcijsku kuku za prilagodbu podnožja pod nazivom 'twentyfifteen_credits'.
Ako želite pregledavati izvorni kôd, također možete lako pronaći akcijske kukice. Akcijske kukice dodaju se kodu s funkcijom WordPress do_action ().
Ako pokrenete brzo traženje izraza 'do_action' u naprednijem uređivaču koda - kao što sam to učinio u nastavku Eclipse - možete vidjeti popis mjesta na kojima možete spojiti prilagođene funkcije u jezgru. Pretražio sam u / Wp-obuhvaća / , ali možete pokrenuti i pretraživanje / Wp-administrator / mapa koja sadrži kukice za radnje povezane s WordPress nadzornom pločom (područje administratora).
Dobra stvar je što su nazivi akcijskih kuka obično razumljivi, ali postoji obično je lijep komentar unutar koda to vam može dati više znanja je li zadana akcija dobra za razlog zbog kojeg ga želite koristiti.
Primjerice, komentar koda pred 'widgets_init' akcijskom kukom kaže da je to “požari nakon što su registrirani svi zadani WordPress widgeti”. Ako zavirite u kôd prije ove akcije, možete pronaći inicijalizaciju WP-a zadanih WP-a prije nje - tako da možete biti sigurni da komentar nije laž, i ako želite registrirati vlastiti prilagođeni widget, ovo će biti pravo mjesto.
U mnogim slučajevima izvorni kod nam daje mnogo više informacija od Kodeksa, tako da je dobra ideja da naučite kako se brzo kretati.
Dodajte vlastite radnje
Kada želite dodati vlastitu radnju, trebate stvoriti prilagođenu funkciju i povežite ovu funkciju s određenom aktivnom kukom pomoću funkcije add_action () WordPress. Prilagođene akcije dodane funkcijom add_action () obično su na licu mjesta kada jezgra poziva odgovarajuću funkciju do_action ().
Pogledajmo jednostavan primjer.
Kako pronaći akciju Hook vam je potrebno
Recimo da želite dodati prilagođeni ikonu omiljene web-lokacije na svoju web-lokaciju. Prvo, morate pronaći pravu akcijsku kuku koju možete povezati s vlastitom funkcionalnošću.
Razmislimo. Ako ste htjeli dodati favicon na običnu HTML stranicu gdje biste je stavili? Naravno, morate ga staviti u
dio HTML datoteke sa sljedećom oznakom:Znači, potrebno je da vam treba akcija u vezi s učitavanjem. \ t odjeljak.
(1) Otvorite referencu akcije i pogledajte što nudi. Imamo sreće, kao da pregledavamo akcije, možemo naći samo jedan, wp_head, koji na temelju njegovog imena ima mogućnost povezivanja s učitavanjem
odjeljak.(2) Da budemo sigurni, hajde provjerite dokumentaciju u WordPress Codexu. Kodeks to savjetuje “ovu kuku koristite tako da vašu funkciju odjekne u pregledniku”, tako da sada izgleda kao da je savršeno za nas. Ali provjerimo u izvornom kodu.
(3) Budući da ova udica nije povezana s područjem administracije, morat ćemo pokrenuti pretraživanje u / Wp-obuhvaća / mapa. Ako tražimo riječ 'wp-head', dobit ćemo mnogo rezultata jer ovu specifičnu akciju koristi WP Core mnogo puta.
Moramo potražiti mjesto gdje će se definirati, stoga potražite izraz do_action ('wp_head'. Imajte na umu da nismo dovršili zagrade, jer još ne možemo biti sigurni ima li ova radnja parametre ili ne.
Eclipse vraća samo jedan rezultat koji se može naći unutar /wp-includes/general-template.php datoteka. Komentar prije definicije kukica za akciju kaže da je to “ispisuje skripte ili podatke u oznaci glave na prednjem kraju”, tako da sada možemo biti sigurni u to wp_head je akcija koja nam je potrebna.
Provjera parametara
Kada dodajete vlastite radnje, također morate biti sigurni hoće li udica koju želite upotrijebiti uzeti parametre ili ne. To možete lako pronaći ako pogledate funkciju do Širina ().
Sintaksa funkcije do Širina () je sljedeća:
do_action ('name_of_action' [, $ parameter1, $ parameter2,…])
Potreban je samo naziv radnje, parametri su opcionalni. Ako nađete argumente u relevantnom pozivu do_action () funkcije, trebate uključite ih u deklaraciju prilagođene funkcije koju izradite.
Ako ih ne pronađete, vaša prilagođena funkcija mora raditi bez argumenata. U definiciji do_action () kvačice akcije wp_head nema parametara.
Usporedimo ga s akcijskom kukom koja uzima parametar. Akcijska kuka nazvana 'wp_register_sidebar_widget' uzima jedan parametar koji uvijek morate prenijeti na prilagođenu funkciju koju vežete na kuku.
Pogledajmo razliku u sintaksi do Širina () u dva slučaja:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
U prvom slučaju nema parametra pa će prilagođena funkcija koristiti sljedeću sintaksu:
funkcija my_function_without_parameters () …
U drugom slučaju postoji jedan parametar koji uvijek morate proslijediti kao argument u deklaraciju vaše prilagođene funkcije:
funkcija my_function_with_parameters ($ widget) …
Kako spojiti svoju korisničku funkciju u
Sada znamo sve što nam treba. Kreiramo našu prilagođenu funkciju koja će prikazati favicon na našoj web-lokaciji.
Prvo stvorite novu funkciju bez argumenata, a zatim je povežite s kukom akcije wp_head uz pomoć funkcije add_action () WordPress.
funkcija custom_add_favicon () echo '„; add_action ('wp_head', 'custom_add_favicon');
Trebaš proslijedite ime aktivne kuke u funkciju add_action () kao argument, onda morate dodajte naziv prilagođene funkcije.
Ovo su dva potrebna parametra add_action (). Ima i dva izborna parametra, prioritet i prihvaćeni argumenti. Pogledajmo kako ih koristiti.
Definiranje prioriteta
To se događa u mnogim slučajevima da postoji više od jedne akcije vezano za istu kuku. Tako koji će se prvi izvršiti? Ovdje možemo koristiti $ prioritetni izborni parametar funkcije add_action ().
Prioritet dodamo kao pozitivni cijeli broj, zadana vrijednost je 10. Ako želimo da se akcija izvrši rano, dajemo joj nižu vrijednost, ako želimo da bude izvršena kasnije, dajemo joj veću vrijednost.
Dakle, ako smatramo da favicon mora biti tamo rano, možemo poboljšati naš prethodni poziv () na sljedeći način:
add_action ('wp_head', 'custom_add_favicon', 5);
Imajte na umu da prioriteti uvijek moraju biti postaviti na druge prilagođene funkcije koji koriste istu kuku za radnju.
Dodajte broj prihvaćenih argumenata
Od vas se traži da dodate broj prihvaćenih argumenata u slučaju da koristite kvačicu koja uzima parametre. Pogledajmo primjer koji smo prije koristili.
Akcija "wp_register_sidebar_widget" uzima jedan parametar, tako da kada vežemo našu prilagođenu funkciju na ovu kuku, trebamo to uključiti i kao argument kada zovemo funkciju add_action ().
Naš kod u ovom slučaju će izgledati ovako:
funkcija my_sidebar_widget_function ($ widget) // Vaš kod add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Imajte na umu da moramo također dodajte prioritet (ovdje smo odabrali default 10) kako bismo bili sigurni da WordPress zna što svaki parametar znači. Ako smo izostavili prioritet, WordPress bi mogao pretpostaviti da je 1 prioritet što nije točno, jer ukazuje na broj prihvaćenih argumenata.
Zaključak
Možete napraviti mnoge eksperimente s kukicama za radnje u prilagodbi teme. Na primjer, možete dodati prilagođene skripte (JS) i stilove (CSS) s kukicom za radnju wp_enqueue_scripts ili kôdom Google Analytics s kukicom za radnju wp_footer.
Ti ne samo da možeš dodajte vlastite radnje, ali možete i vi uklonite potpune funkcionalnosti iz WordPress jezgre uporabom funkcije remove_action () koja koristi istu logiku kao add_action ().
Ako ste autor teme i želite napraviti temu koja se može proširiti, to može biti dobra ideja dodajte vlastite kukice za radnju u odgovarajuće datoteke predložaka s funkcijom do_action ().
Ako to želite učiniti, dobro razmislite o parametrima koje drugi programeri tko će koristiti vašu temu morat će proći kao argument kada žele spojiti svoje prilagođene funkcionalnosti.
Prilikom izrade lokacija prilagođenih akcijskih kuka za vašu temu nemojte zaboraviti nema mnogo smisla uključivati prilagođene kuke za teme na istim mjestima gdje sama WordPress jezgra ima svoje kuke.