WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Платформа для конвертации и монетизации трафика
функция не описана

acf_field_gallery::ajax_update_attachment() public ACF 5.0.0

description

{} Это метод класса: acf_field_gallery{}

Хуки из метода
Возвращает

$post_id. (int)

Использование

$acf_field_gallery = new acf_field_gallery();
$acf_field_gallery->ajax_update_attachment();

Список изменений

С версии 5.0.0 Введена.

Код acf_field_gallery::ajax_update_attachment() ACF 5.9.1

<?php
function ajax_update_attachment() {
	
	// validate nonce
	if( !wp_verify_nonce($_POST['nonce'], 'acf_nonce') ) {
	
		wp_send_json_error();
		
	}
	
	
	// bail early if no attachments
	if( empty($_POST['attachments']) ) {
	
		wp_send_json_error();
		
	}
	
	
	// loop over attachments
	foreach( $_POST['attachments'] as $id => $changes ) {
		
		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();
	
		if ( isset( $changes['title'] ) )
			$post['post_title'] = $changes['title'];
	
		if ( isset( $changes['caption'] ) )
			$post['post_excerpt'] = $changes['caption'];
	
		if ( isset( $changes['description'] ) )
			$post['post_content'] = $changes['description'];
	
		if ( isset( $changes['alt'] ) ) {
			$alt = wp_unslash( $changes['alt'] );
			if ( $alt != get_post_meta( $id, '_wp_attachment_image_alt', true ) ) {
				$alt = wp_strip_all_tags( $alt, true );
				update_post_meta( $id, '_wp_attachment_image_alt', wp_slash( $alt ) );
			}
		}
		
		
		// save post
		wp_update_post( $post );
		
		
		/** This filter is documented in wp-admin/includes/media.php */
		// - seems off to run this filter AFTER the update_post function, but there is a reason
		// - when placed BEFORE, an empty post_title will be populated by WP
		// - this filter will still allow 3rd party to save extra image data!
		$post = apply_filters( 'attachment_fields_to_save', $post, $changes );
		
		
		// save meta
		acf_save_post( $id );
					
	}
	
	
	// return
	wp_send_json_success();
		
}