cara membuat custom meta box wordpress oleh cara segiempatPada beberapa jenis situs berbasis WordPress, Anda perlu membuat custom meta box khususnya untuk postingan-postingan tertentu. Misalnya pada sub situs Selebriti SegiEmpat, kami membuat tambahan meta box untuk kategori profil selebriti. Meta box ini antara lain nama lengkap selebriti, nama komersil selebriti, tanggal lahir selebriti, dan sebagainya. Ini memudahkan penulis untuk memasukkan data, dan juga memudahkan kita untuk menampilkan data tersebut di halaman situs.

Cara membuat meta box sangat mudah. Saya sarankan Anda membuat dulu satu file php khusus untuk meta box tambahan ini karena kodenya sedikit terlalu panjang untuk dimasukkan ke dalam functions.php. Jadi silahkan buat file dengan nama apa saja yang mudah Anda ingat jika suatu saat file tersebut butuh diedit. Pada contoh ini, anggap saja kita membuat file dengan nama tambahan-metabox.php. Kemudian masukkan kode di bawah ini ke dalam file tambahan-metabox.php yang sudah Anda buat sebelumnya tadi.

(Pada contoh ini, anggap saja Anda ingin membuat metabox untuk kategori ulasan film)


$prefix = 'em_';
$meta_box = array(
'id' => 'profil',
'title' => 'Data Film yang Akan Diulas',
'page' => 'post',
'context' => 'side',
'priority' => 'high',
'fields' => array(
array(
'name' => 'Judul Film',
'desc' => 'Masukkan judul film ',
'id' => $prefix . 'judulfilm',
'type' => 'text',
'std' => ''
),
array(
'name' => 'Tanggal Rilis',
'desc' => 'Masukkan tanggal dirilisnya film ',
'id' => $prefix . 'tanggalrilis',
'type' => 'text',
'std' => ''
),
array(
'name' => 'Pemeran Utama',
'desc' => 'Masukkan nama-nama pemeran utama',
'id' => $prefix . 'pemeranutama',
'type' => 'text',
'std' => ''
),

array(
'name' => 'Sinopsis',
'desc' => 'Masukkan sinopsis film ',
'id' => $prefix . 'sinopsis',
'type' => 'text',
'std' => ''
)
),
);
add_action('admin_menu', 'mytheme_add_box');
// Add meta box
function mytheme_add_box() {
global $meta_box;

add_meta_box($meta_box['id'], $meta_box['title'], 'mytheme_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']);
}
// Fungsi menampilkan kolom meta box
function mytheme_show_box() {
global $meta_box, $post;
// gunakan nonce dengan verifikasi
echo '';
echo '

';
foreach ($meta_box['fields'] as $field) {
// ambil post meta data
$meta = get_post_meta($post->ID, $field['id'], true);
echo '

',
'

',
'

';
switch ($field['type']) {
case 'text':
echo '',
'
', $field['desc'];
break;
case 'textarea':
echo '