WordPress kuke: Vodič za početnike za dodavanje vlastitih kuka

WordPress kuke: Vodič za početnike za dodavanje vlastitih kuka

WordPress kuke: Vodič za početnike za dodavanje vlastitih kuka
СОДЕРЖАНИЕ
02 июня 2020

Dodaci su način za proširenje WordPress-a. Razlog zašto je WordPress tako jednostavno učiniti da vaše ponude imaju veze s kukicama koje su preko cijelog izvornog koda.


Želite li nešto učiniti čim objavite post? Želite izmijeniti duljinu izvoda? Želite stvoriti vlastitu statistiku prikaza stranica? Pronalaženje prave udice je sve što trebate učiniti.

Ali što je s istim dodacima? Kuke nisu samo za korištenje u WordPressu, one su u osnovi dizajnerski uzorak koji možete implementirati u svom radu.

U ovom ću vam članku pokazati kako možete izraditi vlastite kuke kako biste olakšali sebi ili drugima nadogradnju na svom poslu..

Zašto su nam potrebne kuke

Da bismo vam pokazali kako sjajne kukice mogu biti, pogledajmo primjer iz stvarnog svijeta: Napredna prilagođena polja. Ovaj dodatak omogućuje vam dodavanje fleksibilnih prilagođenih polja podataka u postove; govorimo o Google kartama, brojevima polja, višestrukim izborima i još mnogo toga.

Sve se to događa pomoću lijepog korisničkog sučelja, sve što trebate učiniti je korištenje funkcija poput get_field () ili the_field () na prednjem kraju. Zasada je dobro.

Pretpostavimo da izrađujete alat koji ljudima omogućuje prodaju stvari, nudeći polje za cijenu i jedno za valutu. Međutim, interno uvijek želite pohraniti cijene u dolarima, bez obzira na to u kojoj se valuti korisnik odluči prikazati.

Ako ACF (Napredna prilagođena polja) nema kuka, to bi bilo teško učiniti, možda ćete trebati koristiti mehanizam izvan ACF-a da biste spremili ovo polje. Srećom, pokriveni smo s acf / save_post radnja. Ovom radnjom možete izmijeniti $ _POST podatke prije spremanja – savršeno vrijeme za pretvaranje cijene u dolare.

Ovo je vrlo praktičan primjer kuka, ali postoji još jedan razlog: buduće dokazivanje i proširivost. Kuke su poput API-ja, daju vam smjer; okvir da tako kažem. Ako spremate važne podatke, automatski biste trebali stvoriti udicu kako bi drugi mogli manipulirati podacima, ako je potrebno. Ako prikazujete nešto kritično za vašu aplikaciju, na primjer, slike upotrebljavaju filtar koji omogućuje definiranje broja prikazanih slika.

Kako kuke djeluju iznutra

Da bismo stvorili vlastite kukice, učinit ćemo točno ono što WordPress radi interno – upotrijebite funkcije dogery () i apply_filters () za izvršavanje svih vezanih funkcija. Okrenimo se izvornom kodu WordPressa da vidimo kako funkcioniraju.

WordPress koristi internu funkciju wp_trim_excerpt () za stvaranje izvatka. U WordPressu 4.1 ova je funkcija definirana u wp-include / formatting.php, počevši od linije 2542. Ako skrenete pažnju na liniju 2560, trebali biste vidjeti sljedeće:

$ excerpt_length = apply_filters (‘excerpt_length’, 55);

To znači sljedeće: Pokrenite svaku funkciju zakačenu na kuke excerpt_length i vratite konačnu vrijednost. Recimo da koristite 3 dodatka koji mijenjaju duljinu izvoda, što se tada događa? Skupimo ove funkcije na jednom mjestu i pogledajte:

add_filter (‘excerpt_length’, ‘plugin_a_excerpt_modify’, 20);
plugin_a_excerpt_modify ($ length) {
povrat $ dužina – 10;
}

add_filter (‘excerpt_length’, ‘plugin_b_excerpt_modify’, 32);
plugin_b_excerpt_modify ($ length) {
povratak 104;
}

add_filter (‘excerpt_length’, ‘plugin_c_excerpt_modify’, 16);
plugin_c_excerpt_modify ($ length) {
povratak 20;
}

Na kraju će duljina izvoda biti 104 riječi. Filtri se izvode po redoslijedu prioriteta. Stoga se najprije izvršava funkcija dodatka C. Ako se ne prikače nijedna druga funkcija, duljina bi sada bila 20 riječi. Dalje, dodatak A stupa, a duljina postaje 10. Konačno, dodatak B teži i čini duljinu 104.

dogery () koristi potpuno isti mehanizam, izvršavajući sve funkcije vezane za kuku definiranu kao prvi parametar.

Imajte na umu da je ovaj obrazac u potpunosti priložen, da se ne oslanja na posebne definicije. Dogery (‘lol_hook’) možete koristiti bilo gdje želite, u najgorem slučaju, nijedna funkcija nije vezana za lol_hook. Drugim riječima, već imamo infrastrukturu za stvaranje vlastitih kuka!

Izrada vlastitih kuka

Kao što sam gore spomenuo, sve što trebamo učiniti je osigurati upotrebu dogery () i / ili add_filter i obavezno dokumentirajte. Na ovaj će način koderi i korisnici zapravo znati da je tamo.

Pretpostavimo da stvaramo galeriju najnovijih prenesenih slika izvučenih izravno iz baze podataka, ovako:

$ args = niz (
‘post_type’ => „Vezanje”,
‘post_status’ => „Svaki”,
‘orderby’ => ‘datum’,
‘nalog’ => ‘DESC’,
‘posts_per_page’ => 10,
‘polja’ => ‘Ids’
);
$ images = new WP_Query ($ args);
$ gallery = ‘[‘ .’gallery ids ="’. implode (‘,’, $ images). ‘"] ‘”.’;
echo do_shortcode ($ galerija);

U ovom primjeru stvaramo upit osiguravajući da samo dohvaćamo slike, poredane po datumu i ograničene na 10 rezultata. Pomoću parametra polja osigurao sam da se vrati niz ID-ova. Tada sam izgradio kratki kôd obične galerije programa WordPress iz ovih podataka.

Postoje dva pristupa koja možete dodati kako biste dodali kuke. Možete ga dodati i prije definicije polja $ args, poput ove:

$ posts_per_page = apply_filters (‘my_gallery / posts_per_page’, 10);

U ovom slučaju, trebate upotrijebiti varijablu $ posts_per_page u nizu. Možda bi bolje rješenje bilo dopustiti modificiranje cijelog niza. To bi drugim dodacima (ili vama u budućnosti) omogućilo dodavanje kategorija, oznaka i drugih ograničenja galerija – evo punog koda:

$ args = niz (
‘post_type’ => „Vezanje”,
‘post_status’ => „Svaki”,
‘orderby’ => ‘datum’,
‘nalog’ => ‘DESC’,
‘posts_per_page’ => 10,
‘polja’ => ‘Ids’
);

$ args = apply_filters (‘my_gallery / query_args’, $ args);

$ images = new WP_Query ($ args);
$ gallery = ‘[‘ .’gallery ids ="’. implode (‘,’, $ images). ‘"] ‘”.’;
echo do_shortcode ($ galerija);

To je sve. Ostali dodaci sada mogu koristiti kuku my_gallery / query_args za izmjenu funkcionalnosti izrađenih galerija.

Napomena o imenovanju: naprijed kosa crta uopće nije potrebna. Možete koristiti ‘my_plugin_query_args’ ili bilo koji drugi format koji želite. Više volim prednju crtu jer na njoj jasno piše dodatak koji ga stvara i funkcionalnost koju pruža.

Zaključak

Kuke su izuzetno snažne i mogu se koristiti ne samo za proširenje WordPress-a, već i za proširenje vlastitih dodataka ili čak tema. Pazite da ne pretjerate i dodate kuke u svaki zavoj vašeg zahtjeva.

Umjesto da u narudžbu zasebno dodajem udicu, status objave, post_tip i posts_per_page, dodao sam filter koji može izmijeniti cijeli niz odjednom. Drugim bitovima podataka možda nema smisla dodavati udice, na vama je u konačnici.

Sretno stvorite više modularnih i proširivih aplikacija, javite nam da ste prije koristili svoje kuke negdje u redu!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Это интересно
    Adblock
    detector