**Have fun.** This works for any post type *(including customs)* that supports the 'post_tag' taxonomy. 99.9% of the time, it will apply only to 'post' post type. *But we make compatible stuff ;)* // Prepare to save new post_tag add_action('wp_insert_post', function($post_ID, $post){ // Don't update if field value was not posted if(!isset($_POST['single_postag'])) return; // Fix WP slashing madness (I hate this joke) $postag = stripslashes(trim($_POST['single_postag'])); $postag = $postag ? array(trim($postag)) : array(); // Set object terms, don't append wp_set_object_terms($post_ID, $postag, 'post_tag', false); }, 10, 2); // 2 args required // And now hijack the metaxbox add_action('add_meta_boxes', function($post_type, $post){ // Discard default 'post_tag' metabox (Important) remove_meta_box('tagsdiv-post_tag', $post_type, 'side'); // Only add the new metabox if post_type supports 'post_tag' taxonomy if(!is_object_in_taxonomy($post_type, 'post_tag')) return; // Create a new 'tagsdiv-postag' metabox (you can't reuse the old MB name) add_meta_box('tagsdiv-postag', __('Tag'), function($post, $box){ // Get the tags and only keep names to weld $tags = wp_get_post_tags($post->ID); // Loop through as references for quick value reassignment foreach($tags as &$tag) $tag = $tag->name; // If multiple tags are added outside this widget, they are combined on save. echo '<p><input type="text" class="widefat" name="single_postag" value="', esc_attr(implode(', ', $tags)), '" /></p>'; // Pimp description so your users can understand this echo '<p class="description">', 'Enter a single Tag.', '</p>'; }, $post_type, 'side', 'core'); }, 10, 2); // 2 args required **Tested code.** *PHP 5.3+ Closures used. Convert code yourself to PHP 5.2 compatible variant if you need.* Regards.