wp_ajax_save_attachment_compat()

In this article

Handles saving backward compatible attachment attributes via AJAX.

Source

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 ); } 

Hooks

apply_filters( ‘attachment_fields_to_save’, array $post, array $attachment )

Filters the attachment fields to be saved.

Changelog

VersionDescription
3.5.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.