WordPress – Cómo incluir un campo personalizado en un adjunto

En este caso tenía la necesidad de crear un campo personalizado para las imágenes (que en wordpress se consideran adjuntos) para después utilizarlo en un post. Para generar dicho campo simplemente he seguido los siguientes pasos:

En el functions.php que tengamos en nuestra personalización simplemente tendremos que añadir las siguientes líneas:

add_filter('attachment_fields_to_edit', 'edit_media_custom_field', 11, 2 );
add_filter('attachment_fields_to_save', 'save_media_custom_field', 11, 2 );

function edit_media_custom_field( $form_fields, $post ) {
	$form_fields['custom_field'] = array( 'label' => 'Custom Field', 'input' => 'text', 'value' => get_post_meta( $post->ID, '_custom_field', true ) );
	return $form_fields;
}

function save_media_custom_field( $post, $attachment ) {
	update_post_meta( $post['ID'], '_custom_field', $attachment['custom_field'] );
	return $post;
}

Con ello ya tendremos al subir cualquier imagen el siguiente resultado: