WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

attachment_fields_to_save хук-фильтр . WP 2.5.0

Сохраняет произвольное поле добавленное к изображению (вложению) с помощью хука attachment_fields_to_edit.

Срабатывает автосохранение при загрузке изображения например в записях (проверить, потому что не выводится надпись "Сохраняем...")

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

add_filter( 'attachment_fields_to_save', 'filter_function_name_2051', 10, 2 );
function filter_function_name_2051( $post, $attachment ){
	// filter...

	return $post;
}
$post(массив)
Массив данных вложения (записи).
$attachment(массив)
Массив мета-данных вложения (записи).

Примеры

#1 Сохраняем данные метаполя

Допустим мы добавили метаполе carousel_price (см. хук attachment_fields_to_edit()).

// Добавим метаполе для изображения
add_filter( 'attachment_fields_to_edit', 'pon_attachment_fields_to_edit', null, 2 );
function pon_attachment_fields_to_edit( $form_fields, $post ){

	$form_fields['carousel_price'] = array(
		'label' => 'Цена (если нужно)',
		'input' => '',
		'value' => get_post_meta( $post->ID, 'carousel_price', true )
	);

	return $form_fields;
}

// Сохраняем данные метаполя
add_filter("attachment_fields_to_save", "pon_attachment_fields_to_save", null, 2);
function pon_attachment_fields_to_save($post, $attachment) {
	if( isset($attachment['carousel_price']) ){
		update_post_meta( $post['ID'], 'carousel_price', $attachment['carousel_price'] );
	}
	else
		delete_post_meta( $post['ID'], 'carousel_price' );

	return $post;
}

Где вызывается хук

media_upload_form_handler()
attachment_fields_to_save
edit_post()
attachment_fields_to_save
wp_ajax_save_attachment_compat()
attachment_fields_to_save
wp-admin/includes/media.php 683
$post = apply_filters( 'attachment_fields_to_save', $post, $attachment );
wp-admin/includes/post.php 324
$post_data = apply_filters( 'attachment_fields_to_save', $post_data, $attachment_data );
wp-admin/includes/ajax-actions.php 2589
$post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );

Где используется хук (в ядре WP)

wp-admin/includes/admin-filters.php 33
add_filter( 'attachment_fields_to_save', 'image_attachment_fields_to_save', 10, 2 );
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться