Supratimas „WordPress Custom Meta Box“
Ankstesniame pranešime kalbėjome apie „WordPress“ priskirtą lauką, kuris leidžia jums pridėti ir išleisti naują įrašą įraše naudojant „Custom Field“ laukelį, kurį „WordPress“ pateikia redagavimo ekrane. Tačiau jei nenorite naudoti pasirinktinio lauko langelio (mes visi turime individualius pageidavimus), čia yra alternatyva: galite sukurti meta langelį.
Meta langelis yra a pritaikytas langelis kad mes sukūrėme savo, kuris gali įtraukite įvestį ar kitą interaktyvią vartotojo sąsają, kad galėtumėte pridėti naujų įrašų pranešimų ar puslapių. Norėdami atlikti tą patį, galite naudoti meta laukelį vietoj langelio „Priskirtas laukas“. Pažiūrėkime, kaip ją sukurti.
Daugiau apie „Hongkiat.com“:
- Tinkinti medijos įkėlimo katalogą „WordPress“
- Tinkinkite „WordPress“ redaktoriaus stilius
- Pritaikyti “Howdy” „WordPress“ administratoriaus juostoje
- Užregistruokite pasirinktinę „WordPress“ naudotojų taksonomiją
- Rodyti piktogramas „WordPress“ meniu
Meta Box kūrimas
WordPress suteikia API funkciją, vadinamą add_meta_box
, kuri leidžia mums iškart sukurti meta langelį. Tai yra jos pagrindinė forma.
funkcija add_post_reference () add_meta_box („post-reference“, „Reference“, „referenceCallBack“, „post“); add_action ('add_meta_boxes', 'add_post_reference'); funkcija nuorodaCallBack () echo „Hello World“
The add_meta_box
trunka keturis parametrus: ID, meta dėžutės pavadinimą, atgalinio ryšio funkciją, kuri paskambins „Hello World“, ir įrašo tipą, kurį norime rodyti. Tokiu atveju po redagavimo puslapyje priskiriame naują meta lauką (tai taip pat veikia su puslapiais).
Po redagavimo skyriuje rasite naują langelį, kaip nurodyta toliau.
Naujas meta laukelis, kaip matote aukščiau, bus rodomas po WYSIWYG redaktoriu. Jei norite jį įtraukti į šoninę juostą, po įrašo parametro galite pridėti „pusę“, o kartu su „aukšta“, jei norite įdėti jį į šoninės juostos viršūnę.
funkcija add_post_reference () add_meta_box („post-reference“, „Reference“, „referenceCallBack“, „post“, „side“, „high“); add_action ('add_meta_boxes', 'add_post_reference');
Dabar jį rasite virš Publikuoti dėžė…
Dabar pakeiskite „Hello World“ tekstą. Pridėkime elementus, pavyzdžiui, įvesties lauką naujam įrašui.
Šiame pavyzdyje pridėsime du įvesties laukus, kurie susideda iš vieno, skirto nuorodos pavadinimui, o kitas - nuorodos nuorodai:
funkcija ReferenceCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', true); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', true); echo '„; echo '„; echo '„. „Pridėti nuorodos pavadinimą“.
„; echo '„; echo '„; echo '„. „Pridėti nuorodos nuorodą“.
„;
Atnaujinkite puslapio redagavimo puslapį, ir turėtumėte pamatyti šiuos du įėjimus.
The $ name_value
ir $ link_value
kintamasis atkurs įrašus iš duomenų bazės ir užpildys juos į įvesties laukus. Norėdami gauti įrašus į duomenų bazę, mums reikės sukurti funkciją.
Turime pridėti keletą kodų eilučių, kurios užpildys įrašus, pridėtus per šiuos įėjimus į duomenų bazę saugiai. “Saugiai” čia reiškia teisėtą ir įgaliotą atvykimą (ne iš įsilaužėlių ar kito neteisėto personalo). Norėdami įrašyti įrašą, turėsime sukurti naują funkciją. Pavadinkime funkciją: save_post_reference
, taip.
funkcija save_post_reference ($ post_id) add_action ('save_post', 'save_post_reference');
Kaip jau minėjome, saugumo sumetimais turime patikrinti kelis dalykus:
(1) Mums reikės patikrinti, ar vartotojas gali redaguoti įrašą.
jei (! current_user_can ('edit_post', $ post_id)) return;
(2) Taip pat turime patikrinkite, ar „Nonce“ yra nustatytas.
jei (! isset ($ _POST ['reference_nonce'])) return; if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) return;
(3) Tada turime užkirsti kelią duomenų automatiniam išsaugojimui. Taupymas gali būti atliktas tik tada, kai “Sutaupyti” arba “Atnaujinti” Paspaudėte mygtuką.
jei (apibrėžta („DOING_AUTOSAVE“) && DOING_AUTOSAVE) return;
(4) Taip pat turėsime užtikrinti, kad mūsų du įnašai, post_reference_name
ir post_reference_link
, yra nustatyti ir paruošti prieš pateikdami įrašus.
jei (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])));
(5) Be to, įrašas neturėtų turėti jokių netikėtų simbolių, kurie gali pakenkti svetainės saugumui. Norėdami tai patikrinti, galite naudoti integruotą „WordPress“ funkciją sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']);
Gerai, dabar esame pasiruošę įrašyti įrašus į duomenų bazę:
update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link);
Dabar galite jį išbandyti: įvesti turinį į įvesties laukus ir spustelėkite “Atnaujinti” mygtuką, kad juos išsaugotumėte.
Išvada
Mes ką tik sukūrėme meta langelį, kurį sudaro du įėjimai. Galite toliau išplėsti dėžutę su kitais įvesties tipais, pvz., Radijo mygtuku arba pasirinkimo laukeliu. Šis pavyzdys gali būti labai paprastas, bet kai jūs jį pakabinsite, galėsite naudoti šį meta langelį daug sudėtingesniam naudojimui. Praneškite mums, jei naudosite tai ir ką naudosite.