get_attachment_fields_to_edit() – Retrieves the attachment fields to edit form fields.

You appear to be a bot. Output may be restricted

Description

Retrieves the attachment fields to edit form fields.

Usage

$array = get_attachment_fields_to_edit( $post, $errors );

Parameters

$post
( WP_Post ) required
$errors
( array ) optional

Returns

array

Source

File name: wordpress/wp-admin/includes/media.php
Lines:

1 to 100 of 128
function get_attachment_fields_to_edit( $post, $errors = null ) {
  if ( is_int( $post ) ) {
    $post = get_post( $post );
  }

  if ( is_array( $post ) ) {
    $post = new WP_Post( (object) $post );
  }

  $image_url = wp_get_attachment_url( $post->ID );

  $edit_post = sanitize_post( $post, 'edit' );

  $form_fields = array(
    'post_title'   => array(
      'label' => __( 'Title' ),
      'value' => $edit_post->post_title,
    ),
    'image_alt'    => array(),
    'post_excerpt' => array(
      'label' => __( 'Caption' ),
      'input' => 'html',
      'html'  => wp_caption_input_textarea( $edit_post ),
    ),
    'post_content' => array(
      'label' => __( 'Description' ),
      'value' => $edit_post->post_content,
      'input' => 'textarea',
    ),
    'url'          => array(
      'label' => __( 'Link URL' ),
      'input' => 'html',
      'html'  => image_link_input_fields( $post, get_option( 'image_default_link_type' ) ),
      'helps' => __( 'Enter a link URL or click above for presets.' ),
    ),
    'menu_order'   => array(
      'label' => __( 'Order' ),
      'value' => $edit_post->menu_order,
    ),
    'image_url'    => array(
      'label' => __( 'File URL' ),
      'input' => 'html',
      'html'  => "<input type='text' class='text urlfield' readonly='readonly' name='attachments[$post->ID][url]' value='" . esc_attr( $image_url ) . "' /><br />",
      'value' => wp_get_attachment_url( $post->ID ),
      'helps' => __( 'Location of the uploaded file.' ),
    ),
  );

  foreach ( get_attachment_taxonomies( $post ) as $taxonomy ) {
    $t = (array) get_taxonomy( $taxonomy );

    if ( ! $t['public'] || ! $t['show_ui'] ) {
      continue;
    }

    if ( empty( $t['label'] ) ) {
      $t['label'] = $taxonomy;
    }

    if ( empty( $t['args'] ) ) {
      $t['args'] = array();
    }

    $terms = get_object_term_cache( $post->ID, $taxonomy );

    if ( false === $terms ) {
      $terms = wp_get_object_terms( $post->ID, $taxonomy, $t['args'] );
    }

    $values = array();

    foreach ( $terms as $term ) {
      $values[] = $term->slug;
    }

    $t['value'] = implode( ', ', $values );

    $form_fields[ $taxonomy ] = $t;
  }

  /*
	 * Merge default fields with their errors, so any key passed with the error
	 * (e.g. 'error', 'helps', 'value') will replace the default.
	 * The recursive merge is easily traversed with array casting:
	 * foreach ( (array) $things as $thing )
	 */
  $form_fields = array_merge_recursive( $form_fields, (array) $errors );

  // This was formerly in image_attachment_fields_to_edit().
  if ( 'image' === substr( $post->post_mime_type, 0, 5 ) ) {
    $alt = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );

    if ( empty( $alt ) ) {
      $alt = '';
    }

    $form_fields['post_title']['required'] = true;

    $form_fields['image_alt'] = array(
      'value' => $alt,
 

 View on GitHub View on Trac