WordPress-koukut: Aloittajan opas omien koukkujen lisäämiseen

WordPress-koukut: Aloittajan opas omien koukkujen lisäämiseen

WordPress-koukut: Aloittajan opas omien koukkujen lisäämiseen
СОДЕРЖАНИЕ
02 июня 2020

Plugins ovat tapa laajentaa WordPressiä. Syy, että WordPressin on niin helppoa tehdä tarjouksesi tekemistä lähdekoodin roskailtujen koukkujen kanssa.


Haluatko tehdä jotain heti, kun viesti on julkaistu? Haluatko muokata otteen pituutta? Haluatko luoda oman sivun näyttötilastosi? Oikean koukun löytäminen on kaikki mitä sinun tarvitsee tehdä.

Mutta entä sama tekeminen laajennuksilla? Koukut eivät ole vain käytettäväksi WordPressissä, ne ovat lähinnä suunnittelumallia, jonka voit toteuttaa omassa työssäsi.

Tässä artikkelissa esittelen sinulle, kuinka voit luoda omia koukkuja, jotta sinun tai muiden on helppo rakentaa työhösi.

Miksi tarvitsemme koukkuja

Katsotaan esimerkkiä todellisesta maailmasta osoittaaksesi kuinka mahtavia koukkuja voi olla: Kehittyneet mukautetut kentät. Tämän laajennuksen avulla voit lisätä joustavia mukautettuja tietokenttiä viesteihin; puhumme Google Mapsista, numerokentistä, monivalinnoista ja muusta.

Kaikki tämä tapahtuu mukavan käyttöliittymän kautta, sinun tarvitsee vain käyttää toimintoja, kuten get_field () tai the_field () käyttöliittymässä. Toistaiseksi niin hyvä.

Oletetaan, että olet rakentamassa työkalua, jonka avulla ihmiset voivat myydä asioita, ja tarjoaa kentän hintalle ja yhden valuutalle. Sisäisesti haluat kuitenkin tallentaa hinnat dollareina riippumatta siitä, mitä valuuttaa käyttäjä valitsee näyttää.

Jos ACF: llä (Advanced Custom Fields) ei ole koukkuja, tätä olisi vaikea tehdä, joudut ehkä käyttämään ACF: n ulkopuolella olevaa mekanismia kentän tallentamiseen. Onneksi meitä kattaa ACF / save_post toiminta. Voit käyttää tätä toimintoa muokataksesi $ _POST-tietoja ennen niiden tallentamista – täydellinen aika muuntaa hinta dollareiksi.

Tämä on erittäin käytännöllinen esimerkki koukkuista, mutta on toinen syy: tulevaisuuden todistus ja laajennettavuus. Koukut ovat kuin API, ne antavat sinulle suunnan; niin sanottu puite. Jos tallennat tärkeitä tietoja, sinun on luotava koukku automaattisesti, jotta muut voivat käsitellä tietoja tarvittaessa. Jos näytät jotain kriittistä sovelluksellesi, esimerkiksi kuvissa, käytä suodatinta, jonka avulla määritetään näytettyjen kuvien määrä.

Kuinka koukut toimivat sisäisesti

Luodaksesi omia koukkuja teemme tarkalleen sen, mitä WordPress tekee sisäisesti – käytä do_action ()- ja application_filters () -toimintoja suorittaaksesi kaikki koukutetut toiminnot. Palataan nyt WordPress-lähdekoodiin nähdäksesi kuinka nämä toimivat.

WordPress käyttää sisäisesti wp_trim_excerpt () -toimintoa otteen luomiseen. WordPress 4.1: ssä tämä toiminto on määritelty wp-sisältää / formating.php, alkaen riviltä 2542. Jos käännät huomion riville 2560, sinun pitäisi nähdä seuraava:

$ excerpt_length = soveltaa suodattimia (‘excerpt_length’, 55);

Tämä tarkoittaa seuraavaa: Suorita jokainen toiminto koukussa katkaisukoukkuihin ja palauta lopullinen arvo. Oletetaan, että käytät kolmea laajennusta, joka muuttaa otteen pituutta, mitä sitten tapahtuu? Keräämme nämä toiminnot yhteen paikkaan ja katsomme:

add_filter (‘katkelman pituus’, ‘plugin_a_excerpt_modify’, 20);
plugin_a_excerpt_modify (pituus $) {
paluu $ pituus – 10;
}

add_filter (‘katkelman pituus’, ‘plugin_b_excerpt_modify’, 32);
plugin_b_excerpt_modify (pituus $) {
paluu 104;
}

add_filter (‘katkelman pituus’, ‘plugin_c_excerpt_modify’, 16);
plugin_c_excerpt_modify (pituus $) {
paluu 20;
}

Lopulta otteen pituus on 104 sanaa. Suodattimet suoritetaan tärkeysjärjestyksessä. Siksi plugin C -toiminto suoritetaan ensin. Jos mitään muuta funktiota ei kiinnitettäisiin, pituus olisi nyt 20 sanaa. Seuraavaksi plugin A potkaisee sisään ja pituudeksi tulee 10. Lopuksi plugin B painaa sisään, jolloin pituus on 104.

do_action () käyttää täsmälleen samaa mekanismia suorittaen kaikki ensimmäiseen parametriksi määritettyyn koukkuun sidotut toiminnot.

Huomaa, että tämä malli on täysin suljettu, se ei luota mihinkään erityisiin määritelmiin. Voit käyttää do_action (‘lol_hook’) missä tahansa haluat, pahimmassa tapauksessa mikään toiminto ei ole sidottu lol_hookiin. Toisin sanoen meillä on jo infrastruktuuri omien koukkujen luomiseen!

Omien koukkujen luominen

Kuten edellä mainitsin, meidän on vain käytettävä do_action () ja / tai add_filter -sovellusta ja muistettava dokumentoida se. Tällä tavalla koodaajat ja käyttäjät tietävät sen olevan olemassa.

Oletetaan, että luomme galleria uusimmista ladattuista kuvista, jotka on vedetty suoraan tietokannasta, jotain tällaista:

$ args = taulukko (
‘post_type’ => ‘Kiinnitys’,
‘post_status’ => ‘minkä tahansa’,
’tilausby’ => ‘Päivämäärä’,
’tilaus’ => ‘Laskeva’,
‘posts_per_page’ => 10,
‘kentät’ => Eidejä “
);
$ images = uusi WP_Query ($ args);
$ galleria = ‘[‘ .’gallery id ="’. implode (‘,’, $ kuvat). ‘"’. ‘]’;
echo do_shortcode ($ galleria);

Tässä esimerkissä luomme kyselyn varmistamalla, että haemme vain kuvia, päivämäärän mukaan järjestettyjä ja rajoitettu 10 tulokseen. Varmistin kenttiparametrilla, että joukko tunnuksia palautetaan. Sitten rakensin tavallisen WordPress-galleria-lyhyen koodin näistä tiedoista.

Voit lisätä koukkuja tähän kahteen tapaan. Voit lisätä sen yksinkertaisesti ennen $ args-taulukon määritelmää, kuten tämä:

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

Tässä tapauksessa joudut käyttämään taulukossa muuttujaa $ posts_per_page. Ehkä parempi ratkaisu olisi antaa koko ryhmän muokata. Tämän avulla muut laajennukset (tai sinä voit tulevaisuudessa) lisätä luokan, tunnisteen ja muut rajoitukset gallerioihin – tässä on täydellinen koodi:

$ args = taulukko (
‘post_type’ => ‘Kiinnitys’,
‘post_status’ => ‘minkä tahansa’,
’tilausby’ => ‘Päivämäärä’,
’tilaus’ => ‘Laskeva’,
‘posts_per_page’ => 10,
‘kentät’ => Eidejä “
);

$ args = apply_filters (‘oma_galleria / kysely_argia’, $ args);

$ images = uusi WP_Query ($ args);
$ galleria = ‘[‘ .’gallery id ="’. implode (‘,’, $ kuvat). ‘"’. ‘]’;
echo do_shortcode ($ galleria);

Siinä kaikki on siinä. Muut laajennukset voivat nyt käyttää my_gallery / query_args -koukkua muokataksesi luomien gallerioiden toiminnallisuutta.

Huomautus nimeämisestä: eteenviiva ei ole ollenkaan tarpeen. Voit käyttää ‘my_plugin_query_args’ tai mitä tahansa muuta haluamaasi muotoa. Pidän eteenpäinviivaa, koska siinä todetaan selvästi sitä luova laajennus ja sen tarjoamat toiminnot.

johtopäätös

Koukut ovat erittäin tehokkaita ja niitä voidaan käyttää WordPressin laajentamisen lisäksi omien laajennusten tai jopa teemojen laajentamiseen. Sinun tulisi olla varovainen, ettet mene yli laidan ja lisää koukkuja sovelluksen jokaiseen nurkkaan ja kallioon.

Sen sijaan, että lisäisin koukun tilaukseen, postin tilaan, postityyppiin ja posts_per_page-erikseen, lisäsin suodattimen, joka voi muokata koko taulukkoa kerralla. Muita bittiä tietoja ei ehkä ole järkevää lisätä koukkuihin, tämä on viime kädessä sinun.

Onnea uusien modulaaristen ja laajennettavien sovellusten luomisessa. Kerro meille, jos olet aiemmin käyttänyt omia koukkujasi jossain viileässä!

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