Kaip sukurti valdiklio įskiepį, skirtą „WordPress“

„WordPress“ yra nuostabi turinio valdymo sistema, turinti daugybę puikių funkcijų, tokių kaip valdikliai. Šiame vadove aš jums paaiškinsiu, kaip sukurti savo valdiklius naudojant nedidelį papildinį. Šis įrašas apims keletą papildomų punktų, kuriuos turite suprasti prieš kurdami patį valdiklį. Štai mes einame!


1 veiksmas: sukurkite savo valdiklio papildinį

Neseniai sukūriau papildinį pavadinimu „Freelancer Widgets Bundle“ ir kai kurie žmonės manęs klausė, kaip sukurti tokį papildinį, todėl nusprendžiau parašyti šį įrašą. Pirmasis žingsnis yra įskiepio sukūrimas. Ir, kaip matysite, tai nėra pati sunkiausia dalis. Papildinys yra papildomas kodas, pridedamas prie „WordPress“, kai tik jį suaktyvinsite. „WordPress“ sukuria kilpą per aplanką, norėdami nuskaityti visus galimus papildinius ir išvardyti juos galiniame biure. Norėdami sukurti papildinį, jums reikės tokios redaktorės kaip „Coda“ („Mac“) arba „Dreamweaver“ („PC“ ir „Mac“). Aš rekomenduoju susikurti savo papildinį vietiniame „WordPress“ diegime, jo padarymas tiesioginiame serveryje gali sukelti tam tikrų problemų, jei padarysite klaidą. Taigi, palaukite, kol išbandysite mūsų papildinį, prieš pateikdami jam savo prieglobą.

Dabar atidarykite aplanką wp-content / plugins. Čia pridėsite savo papildinį. Sukurkite naują katalogą ir pavadinkite jį „valdiklio įskiepiu“ (iš tikrųjų šis vardas gali būti koks tik norite). Net jei mūsų papildinys turės tik vieną failą, visada geriau naudoti aplanką kiekvienam papildiniui. Savo kataloge sukurkite naują failą pavadinimu „widget-plugin.php“ (šį pavadinimą taip pat galima pakeisti) ir atidarykite. Dabar ketiname pridėti savo pirmąsias kodo eilutes. „WordPress“ papildinio apibrėžimas atitinka kai kurias taisykles, kurias galite perskaityti čia kodekse. Štai kaip „WordPress“ apibūdina papildinį:

Taigi, mes turime modifikuoti šį kodą, kad jis atitiktų mūsų poreikius:

Išsaugokite failą. Pridėję kodą tik į savo valdikliui-plugin.php failą, mes sukūrėme papildinį! Na, kol kas papildinys nieko nedaro, bet „WordPress“ tai atpažįsta. Norėdami įsitikinti, kad taip yra, apsilankykite administracijoje ir eikite į meniu „Papildiniai“. Jei jūsų įskiepis pasirodo jūsų įskiepių sąraše, jums gerai, priešingu atveju įsitikinkite, kad vykdėte mano instrukcijas, ir bandykite dar kartą. Dabar galite suaktyvinti papildinį.

2 veiksmas: sukurkite valdiklį

Dabar ketiname sukurti patį valdiklį. Šis valdiklis bus PHP klasė, pratęsianti pagrindinę „WordPress“ klasę WP_Widget. Iš esmės mūsų valdiklis bus apibrėžtas taip:

// Valdiklių klasė
klasė „My_Custom_Widget“ išplečia WP_Widget {

// Pagrindinis konstruktorius
viešoji funkcija __construct () {
/ * ... * /
}

// Valdiklio forma (užpakalinei programai)
viešosios funkcijos forma ($ egzempliorius) {
/ * ... * /
}

// Atnaujinkite valdiklio nustatymus
viešosios funkcijos atnaujinimas ($ new_instance, $ old_instance) {
/ * ... * /
}

// Parodykite valdiklį
viešosios funkcijos valdiklis ($ args, $ instancija) {
/ * ... * /
}

}

// Užregistruokite valdiklį
funkcija my_register_custom_widget () {
„register_widget“ („My_Custom_Widget“);
}
add_action ('valdikliai_init', 'mano_registravimo_paprastas_tampas');

Šis kodas suteikia „WordPress“ visą informaciją, kurios reikia sistemai, kad ji galėtų naudoti valdiklį:

  1. konstruktorius, valdikliui paleisti
  2.  forma () funkcija sukurti valdiklio formą administracijoje
  3. atnaujinimo () funkcija, norėdami išsaugoti valdiklio duomenis leidimo metu
  4. Ir valdiklio () funkcija valdiklio turiniui rodyti priekinėje dalyje

1 - konstruktorius

Konstruktorius yra kodo dalis, apibrėžianti valdiklio pavadinimą ir pagrindinius argumentus. Žemiau pateiktas pavyzdys, kaip jis gali atrodyti.

// Pagrindinis konstruktorius
viešoji funkcija __construct () {
tėvas :: __ konstrukcija (
„my_custom_widget“,
__ („Mano tinkintas valdiklis“, „teksto domenas“),
masyvas (
'customize_selective_refresh' => tiesa,
)
);
}

Prašome nenaudoti __ () aplink valdiklio pavadinimą, šią funkciją vertimui naudoja „WordPress“. Aš tikrai rekomenduoju visada naudoti šios funkcijos, kad jūsų tema būtų visiškai išverčiama. Parametro „customize_selective_refresh“ naudojimas leidžia atnaujinti valdiklį Išvaizda> Tinkinti kai redaguojate valdiklį, taigi, užuot atnaujinę visą puslapį, atnaujinamas tik valdiklis, atliekant pakeitimus.

2 - formos () funkcija

Ši funkcija sukuria valdiklio formos nustatymus „WordPress“ administratoriaus srityje (aplanke Išvaizda> Valdikliai arba Išvaizda> Tinkinti> Valdikliai). Tai yra, jei įvesite savo duomenis, kurie bus rodomi svetainėje. Taigi paaiškinsiu, kaip prie valdiklio formos nustatymų galite pridėti teksto laukus, teksto sritis, pažymėti laukelius ir žymimuosius laukelius.

// Valdiklio forma (užpakalinei programai)
viešosios funkcijos forma ($ egzempliorius) {

// Nustatykite valdiklio numatytuosius nustatymus
$ defaults = masyvas (
'title' => '',
'tekstas' => '',
'textarea' => '',
'žymimasis langelis' => '',
'pasirinkti' => '',
);

// Analizuokite dabartinius nustatymus su numatytaisiais
ištrauka (wp_parse_args ((masyvas) $ instancija, $ numatytosios reikšmės)); ?>


/>

Šis kodas tiesiog prideda 5 valdiklius prie pavadinimo (Pavadinimas, tekstas, teksto sritis, pažymėkite ir pažymėkite). Taigi pirmiausia apibrėžkite savo valdiklio numatytuosius nustatymus, tada kita funkcija analizuoja dabartinius jūsų valdiklio nustatytus / išsaugotus parametrus kartu su numatytaisiais (kad bet kokie parametrai, kurie neegzistuotų, būtų sugrąžinti į numatytuosius, pavyzdžiui, kai pirmą kartą pridedate valdiklį prie jūsų šoninė juosta). Ir paskutinis yra kiekvieno lauko html. Atkreipkite dėmesį į tai, kad pridedant formos laukus naudojamas esc_attr (), tai daroma saugumo sumetimais. Kiekvieną kartą atkurdami vartotojo apibrėžtą kintamąjį savo svetainėje, įsitikinkite, kad jis pirmiausia išvalytas.

3 - atnaujinimo () funkcija

Atnaujinimo () funkcija yra tikrai paprasta. Kadangi „WordPress“ pagrindiniai kūrėjai pridėjo tikrai galingą valdiklių API, mums reikia pridėti šį kodą tik norint atnaujinti kiekvieną lauką:

// Atnaujinkite valdiklio nustatymus
viešosios funkcijos atnaujinimas ($ new_instance, $ old_instance) {
$ instancija = $ old_instance;
$ instancija ['title'] = isset ($ new_instance ['title'])? wp_strip_all_tags ($ new_instance ['title']): '';
$ instancija ['text'] = isset ($ new_instance ['text'])? wp_strip_all_tags ($ new_instance ['text']): '';
$ instancija ['textarea'] = isset ($ new_instance ['textarea'])? wp_kses_post ($ new_instance ['textarea']): '';
$ instance ['checkbox'] = isset ($ new_instance ['checkbox'])? 1: klaidingas;
$ instancija ['pasirinkti'] = isset ($ new_instance ['pasirinkti'])? wp_strip_all_tags ($ new_instance ['pasirinkti']): '';
grąžinti $ egzempliorių;
}

Kaip matote, viskas, ką turime padaryti, yra patikrinti kiekvieną nustatymą ir, jei jis nėra tuščias, išsaugokite jį duomenų bazėje. Atkreipkite dėmesį į tai, kad naudojamos funkcijos wp_strip_all_tags () ir wp_kses_post (). Jos naudojamos norint sutvarkyti duomenis prieš pridedant juos į duomenų bazę. Įterpdami bet kurį vartotojo pateiktą turinį į duomenų bazę turite įsitikinti, kad joje nėra kenksmingo kodo. Pirmoji funkcija wp_strip_all_tags pašalina viską, išskyrus pagrindinį tekstą, todėl galite ją naudoti bet kuriuose laukuose, kur galutinė reikšmė yra eilutė, o antroji funkcija wp_kses_post () yra ta pati funkcija, naudojama pranešimo turiniui, ir pašalina visas žymas, išskyrus pagrindinius HTML, pvz., Nuorodas. , tarpai, dalijimai, vaizdai ir kt.

4 - valdiklio () funkcija

Valdiklio () funkcija yra ta, kuri išleis svetainės turinį. Tai pamatys jūsų lankytojai. Šią funkciją galima pritaikyti įtraukiant CSS klases ir konkrečias žymas, kad jos puikiai atitiktų jūsų temos ekraną. Štai kodas (nepamirškite, kad jį galima lengvai modifikuoti, kad atitiktų jūsų poreikius):

// Parodykite valdiklį
viešosios funkcijos valdiklis ($ args, $ instancija) {

ekstraktas ($ args);

// Patikrinkite valdiklio parinktis
$ title = isset ($ instancija ['title'])? Apply_filters ('valdikliui_pavadinimas', $ egzempliorius ['pavadinimas']): '';
$ text = isset ($ egzempliorius ['tekstas'])? $ egzempliorius ['tekstas']: '';
$ textarea = isset ($ egzempliorius ['textarea'])? $ egzempliorius ['textarea']: '';
$ select = isset ($ instancija ['pasirinkti'])? $ instancija ['pasirinkti']: '';
$ žymimasis laukelis =! tuščias ($ egzempliorius ['žymimasis laukelis'])? $ instancija ['varnelė']: klaidinga;

// „WordPress“ branduolys prieš „valdiklio kablį“ (visada įtraukite)
echo $ before_widget;

// Parodykite valdiklį
aidėti '
'; // Rodyti valdiklio pavadinimą, jei jis apibrėžtas if ($ title) { echo $ before_title. $ titulas. $ after_title; } // Rodyti teksto lauką if ($ tekstas) { aidėti '

'. $ tekstas. '

'; } // Rodyti teksto lauką if ($ textarea) { aidėti '

'. $ teksto sritis. '

'; } // Rodyti pasirinktą lauką if ($ pasirinkti) { aidėti '

'. $ pasirinkti. '

'; } // Parodykite ką nors, jei žymimasis laukelis yra teisingas if ($ žymimasis laukelis) { aidėti '

Kažkas nuostabaus

'; } aidėti '
'; // „WordPress“ pagrindinis „widget“ kabliukas (visada įtraukite) echo $ after_widget; }

Šis kodas nėra sudėtingas; viską, ką turite atsiminti, turite patikrinti, ar nustatytas kintamasis, jei jo nepadarėte ir norite jį atsispausdinti, gausite klaidos pranešimą.

Pilnas valdiklio papildinio kodas

Jei teisingai sekėte, papildinys dabar turėtų būti visiškai funkcionuojantis ir galite jį tinkinti, kad atitiktų jūsų poreikius. Jei nesivadovavote vadovu ar nenorite dar kartą patikrinti kodo, galite apsilankyti „Github“ puslapyje ir pamatyti visą kodą.

Žiūrėti visą kodą „Github“

Išvada

Pamatėme, kad valdiklio kūrimas įskiepio viduje yra labai įdomus, dabar jūs turite žinoti, kaip sukurti paprastą įskiepį, kuriame yra įvairių tipų laukų valdiklis, ir jūs išmokote, kaip žengti šiek tiek toliau, naudojant pažangias technologijas, norint pritaikyti valdiklį. Sveikiname, jūs padarėte nuostabų darbą!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map