How to add custom field to custom post type? How to add custom field to custom post type? wordpress wordpress

How to add custom field to custom post type?


As Muhammad Yasin said there are plugins I'd recommend:
http://wordpress.org/extend/plugins/more-fields/

if you want to do it yourself in code look at: add_meta_box

<?php add_meta_box( $id, $title, $callback, $post_type, $context, $priority, $callback_args ); ?>

You can register boxes per post type.


If you want to create a custom meta box inside a custom post type you will need to use 3 functions.

  1. A function to create a custom "meta boxes" block/screen on your post edit screen: add_meta_boxes_{$post_type}

  2. A function to add a input field to change/show your custom meta

  3. And finally a function to save your meta along with the rest of the post when you click save on the post edit screen: save_post_{$post->post_type}

In your case, a custom checkbox would look like this:

add_action( 'add_meta_boxes_products', 'meta_box_for_products' );function meta_box_for_products( $post ){    add_meta_box( 'my_meta_box_custom_id', __( 'Additional info', 'textdomain' ), 'my_custom_meta_box_html_output', 'products', 'normal', 'low' );}function my_custom_meta_box_html_output( $post ) {    wp_nonce_field( basename( __FILE__ ), 'my_custom_meta_box_nonce' ); //used later for security    echo '<p><input type="checkbox" name="is_this_featured" value="checked" '.get_post_meta($post->ID, 'team_member_title', true).'/><label for="is_this_featured">'.__('Featured Product?', 'textdomain').'</label></p>';}add_action( 'save_post_team_member', 'team_member_save_meta_boxes_data', 10, 2 );function team_member_save_meta_boxes_data( $post_id ){    // check for nonce to top xss    if ( !isset( $_POST['my_custom_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['my_custom_meta_box_nonce'], basename( __FILE__ ) ) ){        return;    }    // check for correct user capabilities - stop internal xss from customers    if ( ! current_user_can( 'edit_post', $post_id ) ){        return;    }    // update fields    if ( isset( $_REQUEST['is_this_featured'] ) ) {        update_post_meta( $post_id, 'is_this_featured', sanitize_text_field( $_POST['is_this_featured'] ) );    }}