Intelegerea WordPress Custom Meta Box
În postarea anterioară, am vorbit despre câmpul personalizat WordPress, care vă permite să adăugați și să ieșiți o intrare nouă într-o postare utilizând caseta Custom Field (Câmp de personalizare) pe care WordPress o oferă în ecranul de editare post. Dacă totuși nu vă simțiți confortabil folosind caseta de câmpuri personalizate (cu toții avem preferințele noastre individuale), iată o alternativă: puteți crea o casetă meta.
O casetă meta este a caseta personalizată pe care le creăm singuri, care poate să conțină intrări sau alte interfețe interactive pentru a adăuga intrări noi de posturi sau pagini. Puteți utiliza meta-caseta în loc de câmpul Custom Field pentru a face același lucru. Să vedem cum să creăm una.
Mai multe despre Hongkiat.com:
- Personalizați directorul de încărcare media în WordPress
- Personalizați stilurile editorului WordPress
- Personalizați “Salutare” În bara de administrare WordPress
- Înregistrați taxonomia personalizată pentru utilizatorii WordPress
- Pictogramele de afișare În meniul WordPress
Crearea unui Meta Box
WordPress furnizează o funcție API, numită add_meta_box
, care ne permite să creăm imediat o casetă meta. Aceasta este în forma sa cea mai de bază.
funcția add_post_reference () add_meta_box ("post-referință", "referință", "referințăCallBack", "postare"); add_action ('add_meta_boxes', 'add_post_reference'); funcție de referințăCallBack () echo 'Hello World'
add_meta_box
are patru parametri: ID-ul, titlul casetei meta, o funcție de apel invers care va apela "Hello World" și tipul de post pe care dorim să-l afișăm. În acest caz, atribuim o nouă casetă de metadate într-o pagină de editare post (aceasta funcționează și cu pagini).
În secțiunea de post editare, veți găsi o nouă casetă, după cum urmează.
Noua casetă meta, după cum puteți vedea mai sus, ar apărea sub editorul WYSIWYG. Dacă doriți să o adăugați în bara laterală, puteți adăuga "partea" după parametrul post și, împreună cu "mare", dacă doriți să o puneți în partea superioară a barei laterale.
funcția add_post_reference () add_meta_box ("post-referință", "referință", "referințăCallBack", "post", "partea", "mare"); add_action ('add_meta_boxes', 'add_post_reference');
Veți găsi acum mai sus Publica cutie…
Acum, pentru a înlocui textul "Hello World" acolo. Să adăugăm elemente ca un câmp de intrare pentru o intrare nouă.
În acest exemplu, vom adăuga două câmpuri de intrare care constau în una pentru adăugarea numelui de referință și a altui pentru linkul de referință:
funcția referenceCallBack ($ post) wp_nonce_field ('reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', adevărat); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', true); echo "„; echo "„; echo "“. "Adăugați numele referinței". "
„; echo "„; echo "„; echo "“. "Adăugați link-ul referinței". "
„;
Actualizați pagina de editare post și ar trebui să vedeți aceste două intrări adăugate.
$ NAME_VALUE
și $ link_value
variabila va prelua intrările din baza de date și le va umple în câmpurile de intrare. Pentru a obține intrările în baza de date, va trebui să creați o funcție pentru aceasta.
Trebuie să adăugăm câteva linii de cod care vor umple în siguranță intrările adăugate prin aceste intrări în baza de date. “În siguranță” aici înseamnă o intrare legitimă și autorizată (nu cea care vine de la hackeri sau de la alt personal neautorizat). Pentru a salva intrarea, va trebui să creați o nouă funcție. Să numim funcția: save_post_reference
, ca astfel.
funcția save_post_reference ($ post_id) add_action ('save_post', 'save_post_reference');
După cum am menționat, trebuie să verificăm câteva lucruri din motive de securitate:
(1) Va trebui să verificăm dacă utilizatorul are capacitatea de a edita o postare.
dacă (! current_user_can ('edit_post', $ post_id)) retur;
(2) Avem de asemenea nevoie verificați dacă nu este setat.
dacă (! isset ($ _POST ['reference_nonce'])) retur; dacă (! wp_verify_nonce ($ _POST ['reference_nonce'], 'reference_meta_box')) return;
(3) Apoi, trebuie să împiedicăm salvarea automată a datelor. Salvarea se poate face numai odată “Salvați” sau “Actualizați” butonul a fost apăsat.
dacă (definit ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
(4) Vom trebui, de asemenea, să ne asigurăm cele două intrări, post_reference_name
și post_reference_link
, sunt setate și pregătite înainte de trimiterea intrărilor.
dacă isset ($ _POST ['post_reference_name']) ||! isset ($ _POST ['post_reference_link'])) retur;
(5) Iar intrarea trebuie să fie liberă de orice personaje neașteptate care pot compromite securitatea site-ului web. Pentru a verifica acest lucru, puteți utiliza funcția încorporată WordPress sanitize_text_field
.
$ reference_name = sanitize_text_field ($ _POST ['post_reference_name']); $ reference_link = sanitize_text_field ($ _POST ['post_reference_link']);
Bine, acum suntem gata să salvăm intrările în baza de date:
update_post_meta ($ post_id, '_post_reference_name', $ nume_report); update_post_meta ($ post_id, '_post_reference_link', $ reference_link);
Acum puteți încerca: introduceți un anumit conținut în câmpurile de introducere și faceți clic pe “Actualizați” pentru a le salva.
Concluzie
Tocmai am creat o casetă meta care conține două intrări. Puteți extinde caseta cu alte tipuri de intrări, cum ar fi butonul radio sau caseta de selectare. Acest exemplu poate fi foarte simplu, dar odată ce ați avea atârnat de el, veți putea folosi această căsuță meta pentru utilizări mult mai complicate. Spuneți-ne dacă veți folosi acest lucru și pentru care îl veți folosi.