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.