Početna » WordPress » Razumijevanje WordPress Custom Meta Box

    Razumijevanje WordPress Custom Meta Box

    U prethodnom postu, govorili smo o WordPress prilagođenom polju, koje vam omogućuje dodavanje i ispis novog unosa u post pomoću okvira Custom Field koji WordPress pruža na zaslonu za uređivanje postova. Međutim, ako vam nije ugodno koristiti okvir prilagođenog polja (svi imamo svoje osobne postavke), evo neke alternative: možete izraditi meta okvir.

    Meta kutija je a prilagođeni okvir koje sami stvaramo, što može sadrže unos ili drugi interaktivni korisnički interfejs za dodavanje novih unosa postova ili stranica. Da biste napravili istu stvar, možete upotrijebiti meta okvir umjesto okvira Custom Field. Da vidimo kako ga stvoriti.

    Više na Hongkiat.com:

    • Prilagodite direktorij za prijenos medija u programu WordPress
    • Prilagodite stilove WordPress urednika
    • Prilagođavanje “zdravo” U WordPress admin baru
    • Registrirajte prilagođenu taksonomiju za WordPress korisnike
    • Ikone prikaza U WordPress izborniku

    Izrada Meta okvira

    WordPress osigurava API funkciju, koja se zove add_meta_box, što nam omogućuje da odmah stvorimo meta kutiju. To je ona u svom krajnjem osnovnom obliku.

     funkcija add_post_reference () add_meta_box ('post-reference', 'Reference', 'referenceCallBack', 'post');  add_action ('add_meta_boxes', 'add_post_reference'); function referenceCallBack () echo 'Pozdrav svijetu' 

    add_meta_box uzima četiri parametra: ID, naslov meta okvira, funkciju povratnog poziva koja poziva "Hello World" i vrstu posta koju želimo prikazati. U ovom slučaju dodjeljujemo novi meta okvir na stranici za uređivanje posta (ovo također funkcionira i sa stranicama).

    U odjeljku za uređivanje postova pronaći ćete novi okvir, kako slijedi.

    Novi meta okvir, kao što možete vidjeti gore, pojavit će se ispod WYSIWYG editora. Ako ga želite dodati u bočnu traku, možete dodati 'side' nakon parametra posta, a uz 'high' ako ga želite staviti na sam vrh sidebara.

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

    Sada ćete ga pronaći iznad Objaviti kutija ...

    Sada zamijenite tekst "Hello World". Dodajmo elemente poput polja za unos za novi unos.

    U ovom primjeru dodat ćemo dva polja za unos koji se sastoje od jednog za dodavanje naziva reference i drugog za referentnu vezu:

     funkcija referenceCallBack ($ 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); jeka '„; jeka '„; jeka '

    ”. "Dodajte naziv reference". '

    „; jeka '„; jeka '„; jeka '

    ”. "Dodajte vezu na referencu". '

    „;

    Osvježite stranicu za uređivanje posta i trebali biste dodati ta dva ulaza.

    $ NAME_VALUE i $ link_value varijabla će dohvatiti unose iz baze podataka i popuniti ih u polja za unos. Da biste unijeli unose u bazu podataka, trebat ćemo stvoriti funkciju za to.

    Moramo dodati nekoliko redaka koda koji će sigurno popuniti unose dodane kroz ove unose u bazu podataka. “sigurno” ovdje znači legitiman i ovlašten ulaz (ne onaj koji dolazi od hakera ili drugog neovlaštenog osoblja). Da biste spremili unos, morat ćemo stvoriti novu funkciju. Nazovite funkciju: save_post_reference, tako.

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

    Kao što smo spomenuli, moramo iz sigurnosnih razloga potvrditi nekoliko stvari:

    (1) Morat ćemo provjeriti je li korisnik ima mogućnost uređivanja posta.

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

    (2) Također moramo Provjerite je li Nonce postavljen.

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

    (3) Zatim moramo spriječiti automatsko spremanje podataka. Spremanje se može obaviti samo jednom “Uštedjeti” ili “ažuriranje” je kliknut.

     if (definirano ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) Također ćemo morati osigurati da naša dva ulaza, post_reference_name i post_reference_link, postavljeni su i spremni prije slanja unosa.

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

    (5) Unos bi trebao biti slobodan od neočekivanih znakova koji mogu ugroziti sigurnost web-mjesta. Da biste to provjerili, možete koristiti ugrađenu WordPress funkciju sanitize_text_field.

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

    U redu, sada smo spremni spremiti unose u bazu podataka:

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

    Sada ga možete isprobati: unesite neki sadržaj u polja za unos i kliknite gumb “ažuriranje” za spremanje.

    Zaključak

    Upravo smo stvorili meta kutiju koja se sastoji od dva ulaza. Kutiju možete dodatno proširiti drugim vrstama ulaza, kao što je radio gumb ili okvir za odabir. Ovaj primjer može biti vrlo jednostavan, ali kada ga dobijete, moći ćete koristiti ovu meta kutiju za mnogo složenije upotrebe. Javite nam ako ćete to koristiti i za što ćete ga koristiti.