//************************************Program Custom Post Type
function wdd_program_posttype() {
register_post_type( 'program',
array(
'labels' => array(
'name' => __( 'Programs' ),
'singular_name' => __( 'Program' ),
'add_new' => __( 'Add New Program' ),
'add_new_item' => __( 'Add New Program' ),
'edit_item' => __( 'Edit Program' ),
'new_item' => __( 'Add New Program' ),
'view_item' => __( 'View Program' ),
'search_items' => __( 'Search Program' ),
'not_found' => __( 'No programs found' ),
'not_found_in_trash' => __( 'No programs found in trash' )
),
'public' => true,
'supports' => array( 'title', 'editor', 'thumbnail' ),
'capability_type' => 'post',
'menu_position' => 5,
'register_meta_box_cb' => 'add_program_metaboxes'
)
);
}

add_action( 'init', 'wdd_program_posttype' );
register_post_type( 'program' , $args );
flush_rewrite_rules();
function add_program_metaboxes() {
add_meta_box('wdd_program_starttime', 'Program Start-Time', 'wdd_program_starttime', 'program', 'side', 'high');
add_meta_box('wdd_program_endtime', 'Program End-Time', 'wdd_program_endtime', 'program', 'side', 'high');
add_meta_box('wdd_program_source', 'Program Source', 'wdd_program_source', 'program', 'side', 'high');
}
function wdd_program_starttime() {
global $post;
echo '<input type="hidden" name="programmeta_noncename" id="programmeta_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
$starttime = get_post_meta($post->ID, '_starttime', true);
echo '<input type="text" name="_starttime" value="' . $starttime  . '" />';
}
function wdd_program_endtime() {
global $post;
echo '<input type="hidden" name="programmeta_noncename" id="programmeta_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
$endtime = get_post_meta($post->ID, '_endtime', true);
echo '<input type="text" name="_endtime" value="' . $endtime  . '" />';
}
function wdd_program_source() {
global $post;
echo '<input type="hidden" name="programmeta_noncename" id="programmeta_noncename" value="' .
wp_create_nonce( plugin_basename(__FILE__) ) . '" />';
$source = get_post_meta($post->ID, '_source', true);
echo '<input type="text" name="_source" value="' . $source  . '" />';
}
function wdd_save_program_meta($post_id, $post) {
if ( !wp_verify_nonce( $_POST['programmeta_noncename'], plugin_basename(__FILE__) )) {
return $post->ID;
}
if ( !current_user_can( 'edit_post', $post->ID ))
return $post->ID;

$program_meta['_starttime'] = $_POST['_starttime'];
$program_meta['_endtime'] = $_POST['_endtime'];
$program_meta['_source'] = $_POST['_source'];

foreach ($program_meta as $key => $value) {
if( $post->post_type == 'revision' ) return;
$value = implode(',', (array)$value);
if(get_post_meta($post->ID, $key, FALSE)) {
update_post_meta($post->ID, $key, $value);
} else {
add_post_meta($post->ID, $key, $value);
}
if(!$value) delete_post_meta($post->ID, $key);
}

}
add_action('save_post', 'wdd_save_program_meta', 1, 2);
$labels = array(
'name'                          => 'Days',
'singular_name'                 => 'Day',
'search_items'                  => 'Search Days',
'popular_items'                 => 'Popular Days',
'all_items'                     => 'All Days',
'parent_item'                   => 'Parent Day',
'edit_item'                     => 'Edit Day',
'update_item'                   => 'Update Day',
'add_new_item'                  => 'Add New Day',
'new_item_name'                 => 'New Day',
'separate_items_with_commas'    => 'Separate Days with commas',
'add_or_remove_items'           => 'Add or remove Days',
'choose_from_most_used'         => 'Choose from most used Days'
);

$args = array(
'label'                         => 'Days',
'labels'                        => $labels,
'public'                        => true,
'hierarchical'                  => true,
'show_ui'                       => true,
'show_in_nav_menus'             => true,
'args'                          => array( 'orderby' => 'term_order' ),
'query_var'                     => true
);

register_taxonomy( 'days', 'program', $args );
Tags:, ,