WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

wp_insert_attachment_data хук-фильтр . WP 3.9.0

Позволяет изменить данные вложения (файла медиатеки) перед обновлением или добавлением в базу данных.

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

add_filter( 'wp_insert_attachment_data', 'filter_function_name_9001', 10, 2 );
function filter_function_name_9001( $data, $postarr ){
	// Изменяем...

	return $data;
}
$data(массив)

Массив с очищенными данными о вложении. Пример данных при добавлении нового изображения:

Array (
	[post_author] => 1
	[post_date] => 2019-05-27 17:11:32
	[post_date_gmt] => 2019-05-27 13:11:32
	[post_content] => 
	[post_content_filtered] => 
	[post_title] => w3hosK-d_yE
	[post_excerpt] => 
	[post_status] => inherit
	[post_type] => attachment
	[comment_status] => open
	[ping_status] => closed
	[post_password] => 
	[post_name] => w3hosk-d_ye
	[to_ping] => 
	[pinged] => 
	[post_modified] => 2019-05-27 17:11:32
	[post_modified_gmt] => 2019-05-27 13:11:32
	[post_parent] => 0
	[menu_order] => 0
	[post_mime_type] => image/jpeg
	[guid] => http://wp-test.ru/wp-content/uploads/2019/05/w3hosK-d_yE-2.jpg
)
$postarr(массив)

Массив с неочищенными данными о вложении. Пример данных при добавлении нового изображения:

Array (
	[post_author] => 1
	[post_content] => 
	[post_content_filtered] => 
	[post_title] => w3hosK-d_yE
	[post_excerpt] => 
	[post_status] => draft
	[post_type] => attachment
	[comment_status] => 
	[ping_status] => 
	[post_password] => 
	[to_ping] => 
	[pinged] => 
	[post_parent] => 0
	[menu_order] => 0
	[guid] => http://wp-test.ru/wp-content/uploads/2019/05/w3hosK-d_yE-2.jpg
	[import_id] => 0
	[context] => 
	[file] => F:\server\sites\wp-test.ru/wp-content/uploads/2019/05/w3hosK-d_yE-2.jpg
	[post_mime_type] => image/jpeg
	[ID] => 0
	[filter] => db
)

Примеры

#1 Удалим заголовок (title) изображения при загрузке в медиабиблиотеку

add_filter( 'wp_insert_attachment_data', 'clear_image_title_when_loading', 10, 2 );

/**
 * Удаляет заголовок изображения при его загрузке в медиабиблиотеку.
 *
 * @param array $data
 * @param array $postarr
 *
 * @return array
 */
function clear_image_title_when_loading( $data, $postarr ) {

	// Если это не изображение, то возвращаем оригинальные данные.
	if ( ! file_is_displayable_image( $postarr['file'] ) ) {
		return $data;
	}

	/*
	 * Если ID нет, значит это добавление и надо title очистить.
	 * Если ID есть, значит это обновление и title изменять не надо.
	 */
	if ( empty( $postarr['ID'] ) ) {
		$data['post_title'] = '';
	}

	return $data;
}

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

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

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

wp_insert_post()
wp_insert_attachment_data
wp-includes/post.php 3871
$data = apply_filters( 'wp_insert_attachment_data', $data, $postarr );

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

Использование не найдено.
campusboy 3434youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 7641
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться