Homepage » WordPress » A WordPress Custom Meta Box megértése

    A WordPress Custom Meta Box megértése

    Az előző bejegyzésben beszéltünk a WordPress egyéni mezőről, amely lehetővé teszi, hogy új bejegyzést adjunk hozzá és küldjünk egy bejegyzésre a WordPress által a Post-szerkesztés képernyőn megjelenő Custom Field mező segítségével. Ha azonban nem tetszik az egyéni meződoboz (mindannyiunknak van egyéni preferenciája), itt van egy alternatíva: létrehozhat egy meta mezőt.

    A meta doboz a testreszabott doboz amit önmagunkban hozunk létre, ami lehet új bejegyzések hozzáadásához tartalmazzon bemenetet vagy más interaktív felhasználói felületet bejegyzések vagy oldalak Ugyanezt a dolgot használhatja az Egyéni mező mező helyett a meta mezőben. Lássuk, hogyan hozhatunk létre egyet.

    További információ a Hongkiat.com oldalon:

    • A média feltöltési könyvtár testreszabása A WordPress programban
    • A WordPress szerkesztőstílusainak testreszabása
    • Testreszab “Szervusz” A WordPress admin bárban
    • Regisztráljon egyéni taxonómiát a WordPress felhasználók számára
    • A ikonok megjelenítése a WordPress menüben

    Meta Box létrehozása

    A WordPress API funkciót biztosít, amelyet hívnak add_meta_box, amely lehetővé teszi számunkra, hogy azonnal hozzon létre egy meta-dobozt. Ez a legmagasabb alapformában van.

     add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post') funkció;  add_action ('add_meta_boxes', 'add_post_reference'); függvény referenciaCallBack () echo 'Hello World' 

    A add_meta_box négy paramétert vesz igénybe: az azonosítót, a meta-box címet, egy visszahívási funkciót, amely felhívja a „Hello World” -t, és a megjeleníteni kívánt üzenet típusát. Ebben az esetben új meta mezőt rendelünk egy utólagos szerkesztési oldalhoz (ez az oldalakhoz is működik).

    A szerkesztés utáni szakaszban egy új doboz található, az alábbiak szerint.

    A fentiekben látható új meta mező a WYSIWYG szerkesztő alatt jelenik meg. Ha azt szeretné, hogy hozzáadja az oldalsávhoz, akkor hozzáadhatja az "oldalt" a postaparaméter után, és a "magas" értékkel együtt, ha azt az oldalsáv tetejére szeretné tenni..

     add_post_reference () add_meta_box ('post-reference', 'Reference', 'referCallBack', 'post', 'side', 'high') funkció;  add_action ('add_meta_boxes', 'add_post_reference'); 

    Most meg fogja találni közzétesz doboz…

    Most cserélje ki a 'Hello World' szöveget. Adjunk hozzá olyan elemeket, mint egy beviteli mező az új bejegyzéshez.

    Ebben a példában két beviteli mezőt adunk hozzá, amelyek egyből állnak a referencia név hozzáadásához, a másik pedig a Referencia hivatkozáshoz:

     függvény referenciaCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', igaz); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', igaz); visszhang„ visszhang„ visszhang

    ”. 'Adja meg a hivatkozás nevét'. '

    „ visszhang„ visszhang„ visszhang

    ”. „Adja hozzá a hivatkozás hivatkozását”.

    Frissítse az utólagos szerkesztési oldalt, és ezeket a két bemenetet hozzá kell adni.

    A $ NAME_VALUE és $ link_value A változó az adatbázistól beolvassa a bejegyzéseket, és betölti azokat a beviteli mezőkbe. Ahhoz, hogy a bejegyzéseket az adatbázisba hozzuk, létre kell hoznunk egy funkciót.

    Hozzá kell adnunk néhány kódsorot, amelyek feltölthetik az adatbázisban biztonságosan bevitt bejegyzéseket. “biztosan” itt jogszerű és engedélyezett belépés (nem pedig a hackerekből vagy más jogosulatlan személyektől származik). A bejegyzés mentéséhez új funkciót kell létrehoznunk. Nevezzük el a funkciót: save_post_reference, úgy tetszik.

     function Save_post_reference ($ post_id)  ​​add_action ('save_post', 'save_post_reference'); 

    Ahogy már említettük, biztonsági okokból néhány dolgot ellenőrizni kell:

    (1) Ellenőriznünk kell, hogy a felhasználó képes szerkeszteni egy bejegyzést.

     ha (! current_user_can ('edit_post', $ post_id)) visszatér;  

    (2) Szükségünk van rá ellenőrizze, hogy a Nonce be van-e állítva.

     if (! isset ($ _POST ['reference_nonce'])) visszatér;  if (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) visszatér;  

    (3) Ezután meg kell akadályoznunk az adatok automatikus mentését. A mentés csak egyszer lehetséges “Mentés” vagy “frissítés” gombra kattintott.

     ha (definiált ('DOING_AUTOSAVE') && DOING_AUTOSAVE) visszatér;  

    (4) Biztosítanunk kell azt is, hogy két inputunk legyen, post_reference_name és post_reference_link, a bejegyzés megkezdése előtt készen állnak és készek.

     ha (! isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) visszatér;  

    (5) A bejegyzésnek mentesnek kell lennie minden olyan váratlan karaktertől, amely veszélyeztetheti a webhely biztonságát. Ennek ellenőrzéséhez használhatja a beépített WordPress funkciót sanitize_text_field.

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

    Rendben, most készek vagyunk menteni a bejegyzéseket az adatbázisba:

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

    Most kipróbálhatja: írjon be valamilyen tartalmat a beviteli mezőkbe, és kattintson a “frissítés” gomb, hogy mentse őket.

    Következtetés

    Nemrég létrehoztunk egy meta-boxot, amely két bemenetből áll. A doboz tovább bővíthető más típusú bemenetekkel, mint például a rádió gomb vagy a kijelölő mező. Ez a példa nagyon alapos lehet, de ha egyszer meg is kapaszkodik, akkor ezt a meta dobozt sokkal bonyolultabb felhasználásra használhatja. Tájékoztassa velünk, ha ezt használja, és mit fog használni.