WordPress meta polje po meri

V tokratni objavi bom na primeru pokazal kako v wordpressu enostavno izdelamo t.i. “custom meta box” oziroma meta polje po meri. V mojem primeru bo to eno input polje preko katerega bomo lahko na določeni objavi oziroma statični strani dodali prilogo različnega formata, npr. pdf datoteko ter jo nato tudi prikazali v obliki linka.

WordPress in custom meta box

Torej za začetek bomo dodali podporo za novi meta box. V kolikor ste že oziroma aktivno razvijate wordpress teme verjetno že veste, da se vse funkcije pišejo v datoteko functions.php. Za začetek dodajmo kodo, ki nam bo omogočila nov custom meta box.

S to kodo smo naredili naslednje:

  • dodali podporo za meta box na statični strani (page) in objavi (post)
  • dodelili ime boxa kot “wp_custom_attachment”
  • ter nastavili pozicijo na “side”, kar pomeni da se bo polje prikazalo za poljem za dodajanje prikazne slike oz. “thumbnail image”.

Da pa nam bo sedaj v admin vmesniku polje za nalaganje datoteke še prikazalo pa moramo dodati še funkcijo z imenom kot smo ga določili v obeh zgornjih add_meta_box funkcijah in to ime je wp_custom_attachment.

Kot lahko opazite smo najprej dodali funkcijo wp_nonce_field(), ki validira naloženo datoteko. Nato pa smo preprosto samo izpisali vnosno polje, kot rezultat pa bi morali videti takšen meta box, če greste pod “Prispevki” -> “Dodaj”.

custom meta box
custom meta box

 

 

 

 

Seveda še tu ni konec. Sedaj moramo še dodati podprte tipe datotek, “pohandlati” naloženo datoteko, jo nato shraniti oziroma prenesti na strežnik.

Tako, sedaj smo že skoraj čisto pri koncu. Saj smo do sedaj že naredili naslednje:

  • omogočili custom meta box na statičnih straneh in prispevkih
  • dodali funkcionalnost s katero lahko datoteko naložimo na strežnik

Sedaj je potrebno zgolj še malo zmodificirati formo za nalaganje, da bo podpirala nalaganje datotek. To storimo tako, da dodamo en majhen hook.

Tako, sedaj lahko preizkusite in naložite kakšno datoteko. Podprti formati so naslednji:

  • .pdf,
  • .doc,
  • .docx,
  • .ppt,
  • .pptx,
  • .pps,
  • .ppsx,
  • .odt,
  • .xls in
  • .xlsx

Tako, sedaj je potrebno za prikaz naložene priloge dodati zgolj še kodo v single.php takoj delom, kjer vam izpiše vsebino. Poglejte v single.php in najdite funkcije the_content(); ter nato za to funkcijo napišite spodnjo kodo.

Sedaj vam bo pri prispevku, kjer boste naložili prilogo za vsebino prikazalo tudi link do predloge.

Kodo za prikaz priloge je možno tudi zmodificirat tako, da vam izpiše ime naložene datoteke, ampak to prepuščam vaši domišljiji 🙂