The media_single_attachment_fields_to_edit() WordPress PHP function retrieves the single non-image attachment fields to edit form fields.
Usage
media_single_attachment_fields_to_edit($form_fields, $post);
Parameters
$form_fields(array) – An array of attachment form fields.$post(WP_Post) – The WP_Post attachment object.
More information
See WordPress Developer Resources: media_single_attachment_fields_to_edit()
Examples
Displaying attachment form fields
This code snippet displays the form fields for a single non-image attachment post.
// Get the attachment post by its ID
$attachment_post = get_post(123);
// Get the form fields for the attachment post
$form_fields = array();
$form_fields = media_single_attachment_fields_to_edit($form_fields, $attachment_post);
// Display the form fields
foreach ($form_fields as $field_key => $field_value) {
    echo "<strong>{$field_value['label']}</strong>: {$field_value['input']}<br>";
}
Adding custom fields
This code snippet adds custom fields to the form fields for a single non-image attachment post.
function my_custom_attachment_fields($form_fields, $post) {
    // Add custom fields
    $form_fields['custom_field'] = array(
        'label' => 'Custom Field',
        'input' => 'text',
        'value' => get_post_meta($post->ID, '_custom_field', true),
    );
    return $form_fields;
}
add_filter('media_single_attachment_fields_to_edit', 'my_custom_attachment_fields', 10, 2);
Removing form fields
This code snippet removes the caption form field for a single non-image attachment post.
function remove_caption_field($form_fields, $post) {
    unset($form_fields['post_excerpt']);
    return $form_fields;
}
add_filter('media_single_attachment_fields_to_edit', 'remove_caption_field', 10, 2);
Modifying form fields
This code snippet modifies the title form field for a single non-image attachment post.
function modify_title_field($form_fields, $post) {
    $form_fields['post_title']['label'] = 'Custom Title';
    return $form_fields;
}
add_filter('media_single_attachment_fields_to_edit', 'modify_title_field', 10, 2);
Displaying form fields in a table
This code snippet displays the form fields for a single non-image attachment post in a table format.
// Get the attachment post by its ID
$attachment_post = get_post(123);
// Get the form fields for the attachment post
$form_fields = array();
$form_fields = media_single_attachment_fields_to_edit($form_fields, $attachment_post);
// Display the form fields in a table
echo '<table>';
foreach ($form_fields as $field_key => $field_value) {
    echo "<tr><td><strong>{$field_value['label']}</strong></td><td>{$field_value['input']}</td></tr>";
}
echo '</table>';