Koduleht » WordPress » Mõistmise WordPress Custom Meta Box

    Mõistmise WordPress Custom Meta Box

    Eelmises postituses oleme rääkinud WordPressi kohandatud valdkonnast, mis võimaldab teil lisada ja väljendada uut kirjet postituses, kasutades selleks kohandatud väljad, mida WordPress pakub redigeerimise ekraanil. Kui aga te ei kasuta kohandatud väljadega (meil kõigil on meie individuaalsed eelistused), siis siin on alternatiiv: saate luua metakasti.

    Metakast on a kohandatud kasti mida me ise loome, mis võib uute kirjete lisamiseks sisend- või muu interaktiivne kasutajaliides postitusi või lehti. Sama tegemiseks saate kasutada meta kasti Custom Fieldi lahtri asemel. Vaatame, kuidas seda luua.

    Veel Hongkiat.com lehelt:

    • Meediumide üleslaadimise kataloogi kohandamine WordPressis
    • Kohanda WordPressi toimetajastiile
    • Kohanda “Howdy” WordPressi admin baaris
    • Registreerige kohandatud taksonoomia WordPressi kasutajatele
    • Kuva ikoonid menüüs WordPress

    Meta kasti loomine

    WordPress pakub API funktsiooni, mida nimetatakse add_meta_box, mis võimaldab meil kohe metakasti luua. See on tema ülim põhivorm.

     funktsioon add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post');  add_action ('add_meta_boxes', 'add_post_reference'); funktsiooni viideCallBack () echo 'Hello World' 

    The add_meta_box võtab neli parameetrit: ID, metakasti pealkiri, tagasihelistamise funktsioon, mis kutsub välja „Hello World”, ja postitüübi, mida me tahame kuvada. Sellisel juhul määrame postitöötluse lehele uue metakasti (see toimib ka lehtedega).

    Postituse redigeerimise sektsioonis leiate uue kasti järgmiselt.

    Uus metakast, nagu näete eespool, ilmuks WYSIWYG redaktori all. Kui soovite selle külgriba lisada, saate pärast postparameetrit lisada "pool" ja koos "kõrge", kui soovite selle külgriba ülaosas panna.

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

    Nüüd leiad selle üle Avalda kast…

    Nüüd asendage „Hello World” tekst. Lisame uue kirje jaoks elemente, näiteks sisendusvälja.

    Selles näites lisame kaks sisendvälja, mis koosnevad ühest viitest, et lisada nimi ja teine ​​viide lingile:

     funktsioon viideCallBack ($ 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); kaja "'; kaja "'; kaja "

    ". 'Lisa viite nimi'. '

    '; kaja "'; kaja "'; kaja "

    ". 'Lisa viite viide'. '

    ';

    Värskendage postituste redigeerimise lehte ja sa peaksid nägema neid kahte sisendit.

    The $ name_value ja $ link_value muutuja saab andmebaasi kirjed alla ja sisestab need sisendväljadesse. Andmete andmebaasi sisestamiseks peame selleks looma funktsiooni.

    Peame lisama mõned koodijooned, mis täidavad turvaliselt nende sisendite kaudu lisatud kirjeid. “Ohutult” siin tähendab seaduslikku ja lubatud sissepääsu (mitte seda, mis pärineb häkkeritest või muust loata personalist). Kirje salvestamiseks peame looma uue funktsiooni. Nimetame selle funktsiooni: save_post_reference, niimoodi.

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

    Nagu me mainisime, peame turvalisuse huvides mõned asjad kontrollima:

    (1) Peame kontrollima, kas kasutaja on võimeline postitust redigeerima.

     kui (! current_user_can ('edit_post', $ post_id)) tagasi;  

    (2) Me peame ka kontrollige, kas Nonce on seadistatud.

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

    (3) Seejärel peame takistama andmete automaatset salvestamist. Salvestamist saab teha ainult siis, kui “Salvesta” või “Uuenda” nuppu on klõpsatud.

     kui (defineeritud ('DOING_AUTOSAVE') && DOING_AUTOSAVE) tagasi;  

    (4) Samuti peame tagama, et meie kaks sisendit, post_reference_name ja post_reference_link, on valmis ja valmis enne kannete esitamist.

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

    (5) Ja kirje peaks olema vaba ootamatutest tähemärkidest, mis võivad ohustada veebisaidi turvalisust. Selle kontrollimiseks saate kasutada sisseehitatud WordPress funktsiooni sanitize_text_field.

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

    Alright, nüüd oleme valmis kirjete andmebaasi salvestama:

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

    Nüüd saate seda proovida: sisendväljadesse sisestada mõni sisu ja klõpsa nupule “Uuenda” nuppude salvestamiseks.

    Järeldus

    Oleme just loonud metakasti, mis koosneb kahest sisendist. Kasti saab täiendavalt laiendada muud tüüpi sisenditega, näiteks raadionupuga või valikukastiga. See näide võib olla väga lihtne, kuid kui olete selle riputanud, saate seda metakasti palju keerulisemaks kasutada. Andke meile teada, kui kasutate seda ja mida te seda kasutate.