Wordpress Meta Box - Add Extra Input Fields in Posts

Posting berikut pengembangan untuk penambahan fitur untuk menambahkan meta box sendiri tanpa menggunakan plugin, dengan beberapa script yang ditambahkan pada file themes yang akan dipakai. Disini merupakan solusi untuk menambahkan form Meta Box pada Dashboard Add Post dengan input data custom (sesuai yang diinginkan), dengan contoh Penambahan Form Text untuk input text Harga.



Untuk memulainya Anda bisa mengedit file functions.php pada themes bawaan yang akan dipakai untuk pembuatan website. Tambahkan script yang ada dibawah ini:

add_action( 'add_meta_boxes', 'price_meta_box_add' );  
function price_meta_box_add() {  
    add_meta_box( 'price-meta-box-id', 'Put Price Here!', 'price_meta_box_cb', 'post', 'side', 'high' );  
}  
function price_meta_box_cb() {
    wp_nonce_field( basename( __FILE__ ), 'price_meta_box_nonce' );
    $value = get_post_meta(get_the_ID(), 'price_key', true);
    $html = '<label>Price: </label><input type="text" name="price" value="'.$value.'"/>';
    echo $html;
}
add_action( 'save_post', 'price_meta_box_save' );  
function price_meta_box_save( $post_id ){   
    if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; 
    if ( !isset( $_POST['price_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['price_meta_box_nonce'], basename( __FILE__ ) ) ) return;
    if( !current_user_can( 'edit_post' ) ) return;  
    if( isset( $_POST['price'] ) )  
        update_post_meta( $post_id, 'price_key', esc_attr( $_POST['price'], $allowed ) );
}

Selanjutnya untuk menampilkan hasil dari script diatas Anda cukup meletakkan script yang ada dibawah ini pada file index.php, single.php, dan file yang lain, yang ingin Anda tampilkan pada halaman tersebut. (single.php, index.php, archive.php - ini hanya contoh semata)
<?php get_post_meta(get_the_ID(), 'price_key', true); ?>



Anda bisa check hasil dari penambahan script diatas setelah Anda input text yang Anda inginkan untuk ditampilkan pada frontend website.

0 comments:

Post a Comment

 
facebook.png twitter.png googleplus.png rss.png