WordPressi konksud: omaenda konksude lisamise algaja juhend

WordPressi konksud: omaenda konksude lisamise algaja juhend

WordPressi konksud: omaenda konksude lisamise algaja juhend
СОДЕРЖАНИЕ
02 июня 2020

Pluginad on viis WordPressi laiendamiseks. Põhjus, miks WordPressi pakkumine on nii lihtne, et see on seotud konksudega, mis on kogu lähtekoodi all.


Kas soovite midagi teha kohe, kui postitus avaldatakse? Kas soovite väljavõtte pikkust muuta? Kas soovite luua oma lehevaate statistika? Õige konksu leidmine on kõik, mida peate tegema.

Aga kuidas oleks sama pistikprogrammidega teha? Konksud pole mõeldud kasutamiseks ainult WordPressis, need on sisuliselt kujundusmuster, mida saate oma töös rakendada.

Selles artiklis näitan teile, kuidas saate luua oma konksud, et teil või teistel oleks teie tööle tuginedes lihtne.

Miks me vajame konksu

Näitamaks, kui vingedad konksud võivad olla, vaatame näidet reaalsest maailmast: Täpsemad kohandatud väljad. See pistikprogramm võimaldab teil postitustele lisada paindlikke kohandatud andmevälju; me räägime Google Mapsist, numbriväljadest, valikvastustega ja muust.

Kõik see toimub kena kasutajaliidese kaudu, peate tegema ainult selliseid funktsioone nagu get_field () või the_field () esiotsa. Siiamaani on kõik korras.

Oletame, et loote tööriista, mis võimaldab inimestel asju müüa, pakkudes välja nii hinna kui ka valuuta jaoks. Sisemiselt soovite aga hindu alati dollarites säilitada, sõltumata sellest, millist valuutat kasutaja valib.

Kui ACF-il (Advanced Custom Field) puuduvad konksud, oleks seda keeruline teha, peate selle välja salvestamiseks kasutama ACF-ist väljaspool asuvat mehhanismi. Õnneks hõlmab meid acf / save_post tegevus. Selle toimingu abil saate muuta $ _POST-i andmeid enne nende salvestamist – ideaalne aeg hinna teisendamiseks dollaritesse.

See on konksude väga praktiline näide, kuid sellel on ka teine ​​põhjus: tulevikukindlus ja laiendatavus. Konksud on nagu API, need annavad teile suuna; niiöelda raamistik. Kui salvestate olulisi andmeid, peaksite automaatselt konksu looma, et teised saaksid vajadusel andmetega manipuleerida. Kui kuvate oma rakenduse jaoks midagi kriitilist, kasutage näiteks pilte filtril, mis võimaldab kuvatavate piltide arvu määratleda.

Kuidas konksud sisemiselt töötavad

Oma konksude loomiseks teeme täpselt seda, mida WordPress sisemiselt teeb – kõigi konksuga funktsioonide täitmiseks kasutage funktsioone do_action () ja apply_filters (). Pöördugem WordPressi lähtekoodi poole, et näha, kuidas need toimivad.

WordPress kasutab katkendi loomiseks sisemiselt funktsiooni wp_trim_excerpt (). WordPress 4.1-s määratletakse see funktsioon jaotises wp-sisaldab / vorming.php, alustades real 2542. Kui pöörate oma tähelepanu reale 2560, peaksite nägema järgmist:

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

See tähendab järgmist: käivitage iga funktsioon, mis on haaratud pikkusekonksudesse, ja tagastage lõppväärtus. Oletame, et kasutate 3 pistikprogrammi, mis muudavad katkendi pikkust, mis siis juhtub? Kogume need funktsioonid ühte kohta ja heidame pilgu:

add_filter (‘excerpt_length’, ‘plugin_a_excerpt_modify’, 20);
plugin_a_excerpt_modify (pikkus $) {
tagasituleku pikkus – 10;
}

add_filter (‘excerpt_length’, ‘plugin_b_excerpt_modify’, 32);
plugin_b_excerpt_modify (pikkus $) {
tagasi 104;
}

add_filter (‘excerpt_length’, ‘plugin_c_excerpt_modify’, 16);
plugin_c_excerpt_modify (pikkus $) {
tagasi 20;
}

Lõpuks on katkendi pikkus 104 sõna. Filtrid täidetakse nende tähtsuse järjekorras. Seetõttu täidetakse kõigepealt pistikprogrammi C funktsioon. Kui ühtegi muud funktsiooni ei ühendataks, oleks pikkus nüüd 20 sõna. Järgmisena lööb sisse pistik A ja pikkus saab 10. Lõpuks kaalub plugin B, muutes pikkuseks 104.

do_action () kasutab täpselt sama mehhanismi, täites kõiki esimese parameetrina määratletud konksu külge seotud funktsioone.

Pange tähele, et see muster on täielikult suletud, see ei tugine erimääratlustele. Saate kasutada do_action (‘lol_hook’) kõikjal, kus soovite, halvimal juhul pole lol_hookiga seotud ühtegi funktsiooni. Teisisõnu – infrastruktuur on meil juba oma konksude loomiseks olemas!

Oma konksude loomine

Nagu ma eelpool mainisin, peame kasutama ainult do_action () ja / või add_filter’i ja veenduge, et dokumenteerige see. Nii saavad kodeerijad ja kasutajad sellest teada.

Oletame, et loome galerii viimastest üles laaditud piltidest otse andmebaasist, umbes selline:

$ args = array (
‘post_type’ => ‘manus’,
‘post_status’ => “ükskõik”,
‘tellitud’ => ‘kuupäev’,
‘tellimus’ => ‘DESC’,
‘posts_per_page’ => 10,
‘väljad’ => ‘id’
);
$ pildid = uus WP_Query ($ args);
$ galerii = ‘[‘ .’galerii ID ="’. implode (‘,’, $ pildid). ‘"’.’] ‘;
echo do_shortcode ($ galerii);

Selles näites loome päringu, veendudes, et toome ainult pilte, kuupäeva järgi järjestatud ja piiratud 10 tulemusega. Väljade parameetri abil veendusin, et tagastatakse massiivi ID-sid. Seejärel ehitasin sellest teabest tavalise WordPressi galerii lühikoodi.

Konksude lisamiseks võiksite kasutada kahte lähenemisviisi. Saate selle lisada lihtsalt enne $ args massiivi määratlust, näiteks nii:

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

Sel juhul peaksite massiivis kasutama muutujat $ posts_per_page. Võib-olla oleks parem lahendus kogu massiivi muutmine. See võimaldaks teistel pistikprogrammidel (või teil tulevikus) lisada galeriides kategooria, sildi ja muud piirangud – siin on täielik kood:

$ args = array (
‘post_type’ => ‘manus’,
‘post_status’ => “ükskõik”,
‘tellitud’ => ‘kuupäev’,
‘tellimus’ => ‘DESC’,
‘posts_per_page’ => 10,
‘väljad’ => ‘id’
);

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

$ pildid = uus WP_Query ($ args);
$ galerii = ‘[‘ .’galerii ID ="’. implode (‘,’, $ pildid). ‘"’.’] ‘;
echo do_shortcode ($ galerii);

Selles on kõik olemas. Teised pistikprogrammid saavad nüüd loodud galeriide funktsionaalsuse muutmiseks kasutada konksu my_gallery / query_args..

Märkus nimetamise kohta: kaldkriips pole ette nähtud. Võite kasutada ‘my_plugin_query_args’ või mõnda muud soovitud vormi. Ma eelistan kaldkriipsu, kuna see ütleb selgelt seda loova plugina ja pakutavad funktsioonid.

Järeldus

Konksud on äärmiselt võimsad ja neid saab kasutada mitte ainult WordPressi laiendamiseks, vaid ka teie enda pistikprogrammide või isegi teemade laiendamiseks. Peaksite olema ettevaatlik, et te ei läheks üle parda ja lisaksite konkse iga rakenduse igasse nurka.

Konksu tellimise, postituse oleku, postitüübi ja posts_per_lehe eraldi lisamise asemel lisasin filtri, millega saab kogu massiivi korraga muuta. Muude andmebittide jaoks pole võib-olla mõtet konksu lisada, see on lõpuks teie enda otsustada.

Õnn modulaarsemate ja laiendatavate rakenduste loomisel. Andke meile teada, kui olete varem oma konkse kasutanud!

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