add_action('admin_menu', 'agregar_campos');
function agregar_campos() {
add_meta_box('subtitulo','Subtítulo','fn_subtitulo','post','normal','high');
}
function fn_subtitulo() {
global $wpdb, $post;
$value = (get_post_meta($post->ID, subtitulo, true));
echo '<label class="hidden" for="subtitulo">Subtítulo</label>
<input type="text" name="subtitulo" id="subtitulo" value="'.htmlspecialchars($value).'" style="width: 600px;" />';
}
add_action('save_post', 'guardar_campos');
add_action('publish_post', 'guardar_campos');
function guardar_campos() {
global $wpdb, $post;
if (!$post_id) $post_id = $_POST['post_ID'];
if (!$post_id) return $post;
$subtitulo= $_POST['subtitulo'];
update_post_meta($post_id, 'subtitulo', $subtitulo);
}
add_action('delete_post', 'borrar_campos');
function borrar_campos() {
global $wpdb, $post;
if (!$post_id) $post_id = $_POST['post_ID'];
if (!$post_id) return $post;
delete_post_meta($post_id, 'subtitulo');
}
y después se llama al campo dentro del loop:
<?php echo get_post_meta($post->ID, subtitulo, true); ?>