Domača » WordPress » Razumevanje WordPress Custom Meta Box

    Razumevanje WordPress Custom Meta Box

    V prejšnji objavi smo govorili o prilagojenem WordPress polju, ki vam omogoča, da dodate in vnesete nov vnos v objavo z uporabo polja Polje po meri, ki ga WordPress nudi na zaslonu za naknadno urejanje. Če pa vam ni všeč, da uporabite polje polja po meri (vsi imamo svoje individualne nastavitve), je tukaj alternativa: ustvarite meta polje.

    Meta škatla je a prilagojeno polje ki ga sami ustvarjamo, kar lahko vsebuje vnos ali drug interaktivni uporabniški vmesnik za dodajanje novih vnosov objav ali strani. Za isto stvar lahko uporabite meta-polje namesto polja Custom Field. Poglejmo, kako ga ustvariti.

    Več na Hongkiat.com:

    • Prilagodite imenik za prenos medijev v WordPress
    • Prilagodite sloge urejevalnika WordPress
    • Prilagoditi “Zdravo” V WordPress admin bar
    • Registrirajte taksonomijo za uporabnike WordPressa
    • Ikone prikaza V meniju WordPress

    Ustvarjanje Meta Box

    WordPress nudi funkcijo API, ki se imenuje add_meta_box, kar nam omogoča, da takoj ustvarimo meta polje. To je to v svoji skrajni osnovni obliki.

     function add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post');  add_action ('add_meta_boxes', 'add_post_reference'); funkcija referenceCallBack () echo 'Hello World' 

    The add_meta_box ima štiri parametre: ID, naslov meta polja, funkcijo povratnega klica, ki pokliče 'Hello World', in vrsto objave, ki jo želimo prikazati. V tem primeru dodamo novo meta polje na strani za urejanje postov (to velja tudi za strani).

    V razdelku za urejanje postov boste našli novo polje, kot sledi.

    Novo meta polje, kot lahko vidite zgoraj, se prikaže pod urejevalnikom WYSIWYG. Če ga želite dodati v stransko vrstico, lahko dodate parameter »stran« za parameter objave in skupaj z »visoko«, če ga želite postaviti na sam vrh stranske vrstice.

     function add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high');  add_action ('add_meta_boxes', 'add_post_reference'); 

    Zdaj ga boste našli nad Objavi škatla…

    Zdaj pa zamenjajte besedilo 'Hello World'. Dodamo elemente kot vnosno polje za nov vnos.

    V tem primeru bomo dodali dve vnosni polji, ki sta sestavljeni iz enega za dodajanje referenčnega imena in drugega za referenčno povezavo:

     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); odmev'; odmev'; odmev

    . "Dodajte ime sklica". "

    '; odmev'; odmev'; odmev

    . "Dodajte povezavo na sklic". "

    ';

    Osvežite stran za urejanje objave in ta dva vhoda bosta dodana.

    The $ name_value in $ link_value spremenljivka pridobi vnose iz baze podatkov in jih zapolni v vnosna polja. Za vnos podatkov v bazo podatkov bomo morali za to ustvariti funkcijo.

    Dodati moramo nekaj vrstic kode, ki bo varno vnesla vnose, dodane prek teh vnosov v bazo podatkov. “Varno” tukaj pomeni zakonit in pooblaščen vstop (ne tisti, ki prihaja od hekerjev ali drugega nepooblaščenega osebja). Če želite shraniti vnos, bomo morali ustvariti novo funkcijo. Poimenujmo funkcijo: save_post_reference, tako.

     funkcija save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference'); 

    Kot smo omenili, moramo iz varnostnih razlogov preveriti nekaj stvari:

    (1) Preveriti bomo morali, ali je uporabnik ima možnost urejanja objave.

     if (! current_user_can ('edit_post', $ post_id)) return;  

    (2) Prav tako moramo Preverite, ali je nastavljena Nonce.

     if (! isset ($ _POST ['reference_nonce'])) return;  if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) return;  

    (3) Nato moramo preprečiti samodejno shranjevanje podatkov. Shranjevanje je mogoče storiti šele, ko “Shrani” ali “Nadgradnja” kliknili gumb.

     if (definirano ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Prav tako bomo morali zagotoviti, da bosta naša dva vložka, post_reference_name in post_reference_link, nastavljeni in pripravljeni, preden pošljemo vnose.

     if (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) return;  

    (5) Vnos ne sme vsebovati nepričakovanih znakov, ki bi lahko ogrozili varnost spletnega mesta. Če želite to preveriti, lahko uporabite vgrajeno funkcijo WordPress sanitize_text_field.

     $ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']); 

    V redu, zdaj smo pripravljeni shraniti vnose v bazo podatkov:

     update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link); 

    Zdaj lahko poskusite: vnesite nekaj vsebine v vnosna polja in kliknite “Nadgradnja” , da jih shranite.

    Zaključek

    Pravkar smo ustvarili meta polje, ki obsega dva vhoda. Dodatno lahko razširite polje z drugimi vrstami vhodov, kot je izbirni gumb ali izbirno polje. Ta primer je lahko zelo osnovni, vendar ko ga dobite, boste lahko uporabljali to meta polje za veliko bolj zapletene uporabe. Sporočite nam, če boste to uporabljali in za kaj ga boste uporabljali.