Skip to content

emka.web.id

Banner 1
Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

Belajar WordPress: Menambah Field Form Baru pada Halaman Add New Media

Posted on October 11, 2011 by Syauqi Wiryahasana
Sudah satu bulan ini saya fokus mengembangkan sebuah sistem informasi yang murni masuk dalam kerangka Framework WordPress. Salah satu bagian penting yang harus saya selesaikan pada pengembangan sistem kali ini adalah halaman upload file yang disertai dengan beberapa field baru, yaitu field kategori dokumen dalam bentuk combobox dan field kode dokumen dalam bentuk text box. Saya tidak ingin mengembangkan sendiri halaman tersebut karena akan jadi tidak efisien, WordPress telah memiliki sendiri halaman upload file yang sudah matang dengan kemampuan Upload berbasis flash dan html berikut skema penyimpanannya yang bagus. Solusi yang saya temukan, kita harus melakukan filtering pada halaman tersebut guna menambahkan dua field baru. Function yang harus difilter kali ini attachment_fields_to_edit dan attachment_fields_to_save. Berikut implementasi riilnya: [sourcecode language="php"] function wpbpm_add_customfield_kategori_dokumeniso($form_fields, $post) { if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="1"){ $selected1 = 'selected="selected"'; } if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="2"){ $selected2 = 'selected="selected"'; } if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="3"){ $selected3 = 'selected="selected"'; } if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="4"){ $selected4 = 'selected="selected"'; } if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="5"){ $selected5 = 'selected="selected"'; } if(get_post_meta($post->ID, "_dokumeniso_cat", true)=="6"){ $selected6 = 'selected="selected"'; } $html = ' <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value=""> -- Pilih -- </option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="1">Instruksi Kerja (IK)</option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="2">Kebijakan Mutu (KM)</option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="3">Manual Mutu (MM)</option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="4">Prosedur Mutu (PM)</option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="5">Rencana Mutu (RM)</option></select> <select name="attachments['.$post->ID.'][wpbpm_dokumeniso_cat]"> <option value="6">Sasaran Mutu (SM)</option></select> '; $form_fields["wpbpm_dokumeniso_cat"] = array( "label" => __("Kategori Dokumen ISO"), "input" => "html", // this is default if "input" is omitted "html" => $html, "value" => get_post_meta($post->ID, "_dokumeniso_cat", true), "helps" => __("Pilih salah satu kategori dokumen ISO untuk dokumen ini.") ); $form_fields["wpbpm_dokumeniso_kode"] = array( "label" => __("Kode Dokumen ISO"), "input" => "text", "value" => get_post_meta($post->ID, "_dokumeniso_kode",true), "help" => __("Isikan kode dokumen ISO.") ); return $form_fields; } // now attach our function to the hook add_filter("attachment_fields_to_edit", "wpbpm_add_customfield_kategori_dokumeniso", null, 2); [/sourcecode] Skrip diatas, tuliskan dalam file function theme anda atau pada salah satu plugin yang anda kembangkan. Fungsi tersebut akan menambahkan fied berupa combo box dan text box pada field edit properties file yang diupload via halaman upload bawaan milik WordPress. Untuk fungsi penyimpanannya, silakan lihat skrip berikut: [sourcecode language="php"] function wpbpm_save_customfield_kategori_dokumeniso($post, $attachment) { // $attachment part of the form $_POST ($_POST[attachments][postID]) // $post['post_type'] == 'attachment' if( isset($attachment['wpbpm_dokumeniso_cat']) ){ // update_post_meta(postID, meta_key, meta_value); update_post_meta($post['ID'], '_dokumeniso_cat', $attachment['wpbpm_dokumeniso_cat']); } if( isset($attachment['wpbpm_dokumeniso_kode']) ){ // update_post_meta(postID, meta_key, meta_value); update_post_meta($post['ID'], '_dokumeniso_kode', $attachment['wpbpm_dokumeniso_kode']); } return $post; } // now attach our function to the hook. add_filter("attachment_fields_to_save", "wpbpm_save_customfield_kategori_dokumeniso", null , 2); [/sourcecode] Dengan solusi ini, setiap file attachment yang kita unggah akan memiliki dua metadata tambahan yaitu _dokumeniso_cat dan _dokumeniso_kode, dan dapat kita olah lebih lanjut dalam halaman lain. Screenshootnya:
Banner 1
Seedbacklink

Recent Posts

  • Rasa’il Ikhwan al-Shafa Fondasi Matematika dalam Filsafat Islam
  • Review Aplikasi Melolo, Saingan Berat Dramabox!
  • Review Game Dislyte: Petualangan Urban Myth yang Seru!
  • Microsoft Resmikan Cloud Region Pertama di Indonesia, Pacu Pertumbuhan AI
  • Bagaimana Bisa Xiaomi Jadi Raja dibanyak Sektor?
  • Sejarah Tokoh Judi Negara: Robby Sumampow
  • Kenapa Hongkong Mulai Kehilangan Anak Mudanya?
  • Apakah China ada Peternakan Panda?
  • Kebohongan Ajudan Bung Karno Soal Letkol Untung Habisi Para Jenderal?
  • Apakah Harga Minyak Dunia Turun Bikin OPEC Bangkrut?
  • Hal Konyol di Startrek Original Series
  • Inilah Deretan Buku-Buku Kontroversial di Dunia
  • Benarkah Kisah Ibrahim-Ismail Tiru Kisah Agamemnon Yunani Kuno?
  • Misteri Paus Donus II, Paus Fiktif Diakui Selama 200 Tahun
  • Review BMW Speedtop M8 Superwagon
  • Apa itu ATC (Air Traffic Control)?
  • Leon Hartono: Investasi Emas Fisik vs Digital vs Crypto 2025
  • Meski Di Ejek 'Jenderal Bodoh', Kenapa Soeharto Bisa Berkuasa 32 Tahun?
  • Kenapa dan Kapan Suku Jawa &amp; Suku Sunda Terpisah?
  • Rusia 'Tantang' Amerika Dari Pulau Biak Papua
  • Sejarah D-Day: Pertempuran Terakhir &amp; Kekalahan Hitler
  • Monaco, Negara Kecil &amp; Super Kaya Kejar Megaproject Reklamasi
  • Rayakan 5 Tahun Region Jakarta, Google Gelar Cloud Summit Jakarta 2025
  • Kasus Nord Stream, Kasus Sabotase Terbesar Didunia!
  • Asal Usul Genetik Bangsa Austronesia

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically