Kuidas kasutada WordPress Action Hooksit teemade kohandamisel
WordPress lapse teemad annavad suhteliselt lihtsa viisi kujunduse väljanägemise ja tunde kohandamiseks. Kui teema valikud ei paku teile piisavaid disainivalikuid, saate lisada uue reegli lapse teema vaikimisi laaditabeli failile nimega style.css. Aga mis juhtub ka siis, kui tahad muutke teema funktsionaalsust? See on üks juhtumeid, kui teie abiks on WordPressi tegevused.
WordPress on muutunud nii populaarseks osaliselt tänu oma kõrgele kohandatavusele. WordPress Core on koormatud erinevate konksudega, mis võimaldavad arendajatel vaikimisi funktsionaalsust muuta või täiustada. Lisaks sellele on meil lubatud lisada kohandatud konksud meie teemadel ja pluginatel aidata teistel arendajatel meie koodi lihtsalt oma vajadustele kohandada.
WordPressi konksudest
WordPressi konksud töötavad mõnevõrra sarnaselt tegeliku elu konksudega selles mõttes, et sa saad püüda soovitud kalad õiges kohas, kui neid õigesti kasutada.
Sa saad eemaldada püütud funktsioon (näiteks saate eemaldada WordPressi admin-baari madala taseme kasutajatele) jätke see puutumata ja seda parandada oma funktsionaalsusega (nt saate lisada teemale rohkem menüüsid või vidinaid) või saate tühistage see (nt saate muuta põhifunktsiooni käitumist).
WordPressis on kaks erinevat tüüpi konksu: meetmeid ja filtrid. Selles postituses vaatame, kuidas me saame kasutage teemade kohandamisel toimingukonksu.
Kuidas WordPress töötab
Väga lihtsa keele kasutamine, meetmeid näitavad seda WordPressi lehekülje elutsükli jooksul on midagi juhtunud: teatud saidi osad on laaditud, teatud seaded või seaded on seadistatud, pluginad või vidinad on vormindatud ja nii edasi.
Filtrid erinevad meetmeid oma olemuselt. Nad on harjunud edastada andmeid, ja muuta, hallata või lõikama seda enne ekraani esitamist või kasutajaandmete salvestamist andmebaasi.
Igas olulises WordPressi lehekülje elutsüklis on kas meetmeid või a filter konks, kuhu me saame lisage vaikimisi käitumise muutmiseks kohandatud kood meie vajadustele.
Teatud taotluse ajal toimivad toimingud ja filtrid sõltuvad sellest, millist lehekülge kasutaja agent on taotlenud: näiteks ühes postitaotluses on saadaval üksikute postitustega seotud konksud, kuid saidi teiste osadega seotud konksud (nt administraatori ala) ei ole.
Leidke Action Hooks
WordPress Codexi tegevusviide annab üksikasjaliku ülevaate erinevate taotluste kaudu toimuvatest toimingutest. Oluline on see, et kui me tahame täita ülesande, mida vajame konksu õigesse kohta, mitte enne või pärast seda, vastasel juhul toimingut ei lõpetata.
Nii näiteks kui tahame lisage saidile Google Analyticsi kood me peame haakige meie tegevus kohe enne jaluse allalaadimist.
Kui me räägime teemade kohandamisest, võivad tegevuskoed olla pärit kahest erinevast kohast: alates WordPress Core ja teema ise. On teemasid, millel pole konksusid, kuid teised pakuvad arendajatele mõningaid või palju - see on alati teema autor. Vaikimisi kakskümmend viieteistkümnendal teemal on ainult üks toimingukonks jaluse kohandamiseks nime all „twentyfifteen_credits”.
Kui soovid sirvida lähtekoodi, võite kergesti leida ka toimingukonksud. Tegevuskonksud lisatakse koodile funktsiooni do_action () WordPress funktsiooniga.
Kui käivitate kiirema otsingu väljendi 'do_action' jaoks rohkem arenenud koodiredaktoris - nagu ma tegin allpool Eclipse'is - näete nende kohtade loendit, kus saate oma funktsionaalsuse südamesse haakida. Ma otsisin / wp-include / kausta, kuid saate ka käivitada otsingu / wp-admin / kaust, mis sisaldab WordPressi juhtpaneeliga seotud konksu (administraatori ala).
Hea asi on see, et tegevuskoobade nimed on tavaliselt üsna iseenesestmõistetavad, kuid on olemas tavaliselt kena kommentaar koodi sees mis annab teile rohkem teada, kas antud toimingukonks on hea põhjus, miks soovite seda kasutada.
Näiteks koodide kommentaar enne "widgets_init" toimingukonksu ütleb seda “tulekahjud pärast kõigi vaikimisi WordPressi vidinate registreerimist”. Kui te võtate koodi enne selle toimingukonksu, näete kõik WP-i vidinate vaikimisi initsialiseerimise enne seda, et saaksite olla kindel, et kommentaar ei ole, ja kui soovite oma kohandatud vidina registreerida, see on õige koht.
Paljudel juhtudel annab lähtekood meile palju rohkem teavet kui Codex, mistõttu võib olla hea mõte, kuidas seda kiiresti navigeerida.
Lisage oma tegevused
Kui soovite oma tegevust lisada, peate seda tegema luua kohandatud funktsioon ja siduda see funktsioon konkreetse toimingukonksuga funktsiooni Add_action () WordPress abil. Tavaliselt on lisafunktsiooniga (lisa_action) lisatud kohandatud toimingud kohapeal kui südamik kutsub üles funktsiooni do_action ().
Vaatame lihtsat näidet.
Kuidas leida toimingukonksu
Oletame, et soovite oma kohandatud faviconi oma saidile lisada. Esiteks peate leidma õige toimingukonksu, millega saate oma funktsioone siduda.
Mõtleme. Kui soovisite lisada tavalise HTML-lehekülje faviconi, kuhu te seda paneksite? Loomulikult peate selle asetama
HTML-faili osa, millel on järgmine märgistus:Nii et peate tegutsema seotud. \ t lõik.
(1) Avage tegevusjuhend ja vaadake, mida see pakub. Me oleme õnnelikud, sest kui me sirvime toiminguid, leiame ainult ühe, wp_head, mis tema nime põhjal on seotud sellega, et see on seotud selle laadimisega.
lõik.(2) Kindlasti olgem kontrollige dokumentatsiooni WordPressi koodis. Codex soovitab seda “te kasutate seda konksu, kui funktsiooni kajab brauserile”, nii et just praegu tundub see olevat meile ideaalne. Aga vaadake see lähtekoodi.
(3) Kuna see konks ei ole seotud administraatoriga, peame oma otsingu käivitama / wp-include / kausta. Kui otsime sõna „wp-head”, siis saadame palju tulemusi, kuna WP Core kasutab seda konkreetset tegevust mitu korda.
Peame otsima koha, kus see määratletakse, nii et otsige väljendit tehke järgnev ('wp_head'. Pange tähele, et sulgusid ei lõpetatud, sest me ei saa veel kindel olla, kui sellel toimingul on parameetreid või mitte.
Eclipse tagastab ainult ühe tulemuse /wp-includes/general-template.php faili. Kommentaar enne tegevuse konksu määratlust ütleb, et see on “prindib skripte või andmeid esipaneelil”, nii et nüüd saame olla surnud wp_head on meede, mida me vajame.
Parameetrite kontrollimine
Kui lisate oma tegevused, peate ka olema kindel, kas kasutatav konks võtab parameetrid või mitte. Seda saab hõlpsasti leida funktsiooni do_action () abil.
Funktsiooni do_action () süntaks on järgmine:
do_action ('name_of_action' [, $ paraméter1, $ paraméter2,…])
Vaja on ainult toimingu nimi, parameetrid on valikulised. Kui leiate argumendid funktsiooni do_action () vastavas kõnes, peate seda tegema lisage need oma loodud kohandatud funktsiooni deklaratsiooni.
Kui te seda ei leia, peab teie kohandatud funktsioon toimima ilma argumentideta. Wp_head meetme konksu do_action () määratluses pole parameetreid.
Võrdleme seda toimingukonksuga, mis võtab parameetri. Toimingukonks 'wp_register_sidebar_widget' võtab ühe parameetri, mis peate alati läbima kohandatud funktsiooni, mille te konksuga sidute.
Vaatame kahe juhtumi süntaksis do_action () esinevat erinevust:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ vidin);
Esimesel juhul pole parameetrit, nii et kohandatud funktsioon kasutab järgmist süntaksit:
funktsiooni my_function_without_parameters () …
Teisel juhul on üks parameeter, mida peate alati oma argumentide deklaratsioonina argumenteerima:
funktsiooni my_function_with_parameters ($ widget) …
Kuidas ühendada oma kohandatud funktsioon
Nüüd teame kõike, mida me vajame. Looge oma kohandatud funktsioon, mis näitab meie veebisaidil faviconi.
Esmalt looge uusi funktsioone ilma argumentideta, seejärel siduge see wp_headi toimingukonksuga lisanäidise () WordPress funktsiooni abil..
funktsioon custom_add_favicon () echo ”'; add_action ('wp_head', 'custom_add_favicon');
Sa pead edastada nimi toimingukonksu funktsiooni add_action () esiteks argument, siis pead lisage kohandatud funktsiooni nimi.
Need on kaks lisa parameetri nõutavat parameetrit (). Sellel on ka kaks valikulist parameetrit, prioriteet ja aktsepteeritud argumendid. Vaatame, kuidas neid kasutada.
Määrake prioriteedid
Paljudel juhtudel juhtub, et sama konksuga on seotud rohkem kui üks tegevus. Nii et üks neist täidetakse esimesena? Siin saame seda kasutada $ prioriteet valikuline parameeter funktsiooni add_action ().
Lisame prioriteedi positiivse täisarvuna, vaikeväärtus on 10. Kui me tahame, et meedet rakendataks varakult, anname sellele väiksema väärtuse, kui me tahame, et see täidetakse hiljem, anname talle suurema väärtuse.
Nii et kui me arvame, et favicon peab olema varakult olemas, saame oma eelmist lisakinnituse () kõnet täiustada järgmiselt:
add_action ('wp_head', 'custom_add_favicon', 5);
Pange tähele, et prioriteedid peavad alati olema seatud teiste kohandatud funktsioonidega mis kasutavad sama toimingukonksu.
Lisage aktsepteeritud argumentide arv
Kui kasutate parameetreid kasutavat toimingukonksu, peate lisama vastuvõetud argumentide arvu. Vaatame näite, mida me varem kasutasime.
Toimingukonks „wp_register_sidebar_widget” võtab ühe parameetri, nii et kui me sidume oma kohandatud funktsiooni sellele konksule, peame selle lisama argumenti, kui me nimetame funktsiooni add_action ().
Sellisel juhul näeb meie kood välja selline:
funktsiooni my_sidebar_widget_function ($ widget) // Teie kood add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Pange tähele, et peame lisada ka prioriteet (valisime siin vaikimisi 10), et veenduda, et WordPress teab, mida iga parameeter tähendab. Kui me prioriteedi ära jätnud, võiks WordPress eeldada, et 1 on prioriteet mis ei ole tõsi, kuna see näitab aktsepteeritud argumentide arvu.
Järeldus
Te saate teha mitmeid katseid tegumikonksudega teemade kohandamisel. Näiteks saate oma kohandatud skripte (JS) ja stiile (CSS) lisada wp_enqueue_scripts tegevuse konksuga või oma Google Analyticsi koodiga wp_footer tegevuse konksuga.
Sa ei saa mitte ainult lisage oma tegevused, aga võite ka eemaldada täielikud funktsioonid WordPressi tuumast, kasutades funktsiooni eemaldamisvahend () funktsiooni, mis kasutab sama loogikat kui add_action ().
Kui te olete teema autor ja te soovite teha laiendatavat teemat, võib see olla hea mõte lisage oma kohandatud toimingukonksud sobivatesse mallifailidesse funktsiooni do_action () abil.
Kui soovite seda teha, mõtle hoolikalt teiste arendajate parameetritele kes teie teemat kasutab peavad läbima argumendid kui nad soovivad oma kohandatud funktsioone haarata.
Teema kohandatud toimingute kavandamisel ei unusta see konksud seda ei ole palju mõtet lisada kohandatud teema konksud samadele kohtadele, kus WordPress Core ise on oma konksudega.