Kotisivu » WordPress » Ymmärtäminen WordPress Custom Meta Box

    Ymmärtäminen WordPress Custom Meta Box

    Edellisessä postissa olemme puhuneet WordPressin mukautetusta kentästä, jonka avulla voit lisätä ja lähettää uuden viestin postitse käyttämällä mukautettua kenttää, jonka WordPress tarjoaa postinkäsittelynäytössä. Jos et kuitenkaan ole mukava käyttämään mukautettua kenttää (meillä kaikilla on yksilölliset mieltymykset), tässä on vaihtoehto: voit luoda metakentän.

    Metakenttä on a ruutuun jotka me itse luomme, mikä voi lisää syötteitä tai muita interaktiivisia käyttöliittymiä uusien merkintöjen lisäämiseksi virkaa tai sivuja. Voit tehdä saman tehtävän myös meta-ruudun mukautetun kentän sijasta. Katsotaanpa, miten se voidaan luoda.

    Lisää sivustosta Hongkiat.com:

    • Muokkaa mediasiirtohakemistoa WordPressissa
    • Mukauta WordPress-editorityyliä
    • muokata “hei” WordPress-järjestelmänvalvojapalkissa
    • Rekisteröi mukautettu taksonomia WordPress-käyttäjille
    • Näytä kuvakkeet WordPress-valikossa

    Meta-laatikon luominen

    WordPress tarjoaa API-toiminnon, jota kutsutaan add_meta_box, jonka avulla voimme luoda metakentän heti. Tämä on sen äärimmäisessä perusmuodossa.

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

    add_meta_box kestää neljä parametria: tunnus, metakentän nimi, soittopyyntö, joka kutsuu "Hello World", ja postityyppi, jota haluamme näyttää. Tällöin annamme uuden meta-ruudun postinkäsittelysivulle (tämä toimii myös sivuilla).

    Postinkäsittely-osiossa on uusi laatikko seuraavasti.

    Uusi meta-ruutu, kuten edellä näet, näkyy WYSIWYG-editorin alapuolella. Jos haluat lisätä sen sivupalkkiin, voit lisätä sivun 'postin' postparametrin jälkeen ja "high" -toiminnon kanssa, jos haluat laittaa sen sivupalkin yläreunaan.

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

    Löydät sen sen jälkeen Julkaista laatikko…

    Nyt korvaa "Hello World" -teksti siellä. Lisäämme elementtejä, kuten uuden kentän syöttökenttä.

    Tässä esimerkissä lisätään kaksi syöttökenttää, jotka koostuvat yhdestä viittausnimen lisäämistä varten ja toinen viittauslinkille:

     toiminto viiteCallBack ($ 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', totta); echo ''; echo ''; echo '

    '. 'Lisää viitteen nimi'. '

    '; echo ''; echo ''; echo '

    '. 'Lisää viittauksen linkki'. '

    ';

    Päivitä postin muokkaussivu, ja sinun pitäisi nähdä nämä kaksi tuloa.

    $ NAME_VALUE ja $ link_value muuttuja hakee merkinnät tietokannasta ja täyttää ne syöttökenttiin. Saadaksesi merkinnät tietokantaan, meidän on luotava siihen toiminto.

    Meidän on lisättävä muutama rivi koodia, jotka täyttävät tietokannan kautta syötetyt syötteet tietokantaan turvallisesti. “Turvallisesti” tässä tarkoitetaan laillista ja sallittua maahantuloa (ei sitä, joka on peräisin hakkereilta tai muilta luvattomilta henkilöiltä). Tallentaaksesi merkinnän, meidän on luotava uusi toiminto. Nimeä toiminto: save_post_reference, niin kuin.

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

    Kuten mainitsimme, meidän on tarkistettava muutamia asioita turvallisuussyistä:

    (1) Meidän on tarkistettava, onko käyttäjä pystyy muokkaamaan viestiä.

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

    (2) Meidän on myös tarkista, onko Nonce asetettu.

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

    (3) Sitten meidän on estettävä tietojen automaattinen tallennus. Säästäminen voidaan tehdä vain kerran “Tallentaa” tai “Päivittää” painiketta on napsautettu.

     jos (määritelty ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Meidän on myös varmistettava, että kaksi panostamme, post_reference_name ja post_reference_link, ovat valmiita ja valmiita ennen kuin lähetämme merkinnät.

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

    (5) Ja merkinnän pitäisi olla vapaa odottamattomista merkkeistä, jotka voivat vaarantaa verkkosivuston suojauksen. Tämän tarkistamiseksi voit käyttää sisäänrakennettua WordPress-toimintoa sanitize_text_field.

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

    Okei, nyt olemme valmiita tallentamaan merkinnät tietokantaan:

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

    Nyt voit kokeilla sitä: syötä sisältöä syöttökenttiin ja napsauta “Päivittää” -painikkeella.

    johtopäätös

    Olemme juuri luoneet metakentän, joka koostuu kahdesta tulosta. Voit edelleen laajentaa laatikkoa muun tyyppisillä tuloilla, kuten radiopainikkeella tai valintaruudulla. Tämä esimerkki voi olla hyvin yksinkertainen, mutta kun saat sen roikkumaan, voit käyttää tätä metakenttää paljon monimutkaisempiin käyttötarkoituksiin. Kerro meille, jos käytät tätä ja mitä käytät sitä varten.