WordPress Meta Box for custom post type

Posted on

Here samplepost means custom post type

<?php
add_action( 'admin_init', 'my_admin_samplepost' );
function my_admin_samplepost() {
    add_meta_box( 'samplepost_meta_box', 'Car Details', 'display_samplepost_meta_box','samplepost', 'normal', 'high' );
}
function display_samplepost_meta_box( $samplepost ) {
    ?>
    <h4>General Details</h4>
    <table width="100%">
        <tr>
            <td style="width: 25%">Monthly Paymeny</td>
            <td><input type="text" style="width:425px;" name="meta[payment]" value="<?php echo esc_html( get_post_meta( $samplepost->ID, 'payment', true ) );?>" />
            </td>
        </tr>
        <tr>
            <td>Price ($)</td>
            <td><input type="text" style="width:425px;" name="meta[price]" placeholder="$" value="<?php echo esc_html( get_post_meta( $samplepost->ID, 'price', true ) );?>" />
            </td>
        </tr>
        <tr>
            <td>Milage</td>
            <td><input type="text" style="width:425px;" name="meta[milage]" value="<?php echo esc_html( get_post_meta( $samplepost->ID, 'milage', true ) );?>" />
            </td>
        </tr>
    </table>
<?php 
}
add_action( 'save_post', 'add_samplepost_fields', 10, 2 );
function add_samplepost_fields( $samplepost_id, $samplepost ) {
    if ( $samplepost->post_type == 'samplepost' ) {
        if ( isset( $_POST['meta'] ) ) {
            foreach( $_POST['meta'] as $key => $value ){
                update_post_meta( $samplepost_id, $key, $value );
            }
        }
    }
}

 

add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

*