wp_ajax_save_attachment_compat() – Ajax handler for saving backward compatible attachment attributes.

You appear to be a bot. Output may be restricted

Description

Ajax handler for saving backward compatible attachment attributes.

Usage

wp_ajax_save_attachment_compat();

Parameters

Returns

void

Source

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

1 to 52 of 52
function wp_ajax_save_attachment_compat() {
  if ( ! isset( $_REQUEST['id'] ) ) {
    wp_send_json_error();
  }

  $id = absint( $_REQUEST['id'] );
  if ( ! $id ) {
    wp_send_json_error();
  }

  if ( empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][ $id ] ) ) {
    wp_send_json_error();
  }

  $attachment_data = $_REQUEST['attachments'][ $id ];

  check_ajax_referer( 'update-post_' . $id, 'nonce' );

  if ( ! current_user_can( 'edit_post', $id ) ) {
    wp_send_json_error();
  }

  $post = get_post( $id, ARRAY_A );

  if ( 'attachment' !== $post['post_type'] ) {
    wp_send_json_error();
  }

  
/** This filter is documented in wp-admin/includes/media.php */
  $post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );

  if ( isset( $post['errors'] ) ) {
    $errors = $post['errors']; // @todo return me and display me!
    unset( $post['errors'] );
  }

  wp_update_post( $post );

  foreach ( get_attachment_taxonomies( $post ) as $taxonomy ) {
    if ( isset( $attachment_data[ $taxonomy ] ) ) {
      wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
    }
  }

  $attachment = wp_prepare_attachment_for_js( $id );

  if ( ! $attachment ) {
    wp_send_json_error();
  }

  wp_send_json_success( $attachment );
}
 

 View on GitHub View on Trac