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

Дозволяє змінити дані вкладення (файлу медіатеки) перед оновленням або додаванням до бази даних.

Використання

add_filter( 'wp_insert_attachment_data', 'wp_kama_insert_attachment_data_filter', 10, 4);

/**
 * Function for `wp_insert_attachment_data` filter-hook.
 *
 * @param array $data На array of slashed, sanitized, і procesed attachment post data.
 * @param array $postarr На array of slashed and sanitized attachment post data, але не processed.
 * @param array $unsanitized_postarr На array of slashed yet *unsanitized* і необхідний підхід до post data як originally passed to wp_insert_post().
 * @param bool $update Wether this is existing attachment post being updated.
 *
 * @return array
 */
function wp_kama_insert_attachment_data_filter( $data, $postarr, $unsanitized_postarr, $update ){

	// Filter...
	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:serversiteswp-test.ru/wp-content/uploads/2019/05/w3hosK-d_yE-2.jpg
	[post_mime_type] => image/jpeg
	[ID] => 0
	[filter] => db
)
$unsanitized_postarr
(масив) (WP 5.4.1)
Масив із «злешеними», але ще не серіалізованими даними про вкладення.
$update
(true/false) (WP 6.0)
true – коли оновлюється вже існуюче вкладення (пост). false – коли додається нове.

Приклади

0

#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Введено.
З версії 5.4.1$unsanitized_postarr parameter був added.
З версії 6.0.0$update parameter був added.

Де викликається хук

wp-includes/post.php 4359

$data = apply_filters( 'wp_insert_attachment_data', $data, $postarr, $unsanitized_postarr, $update);

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *