wp_insert_attachment_data
Дозволяє змінити дані вкладення (файлу медіатеки) перед оновленням або додаванням до бази даних.
Використання
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 – коли додається нове.
Приклади
#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_insert_attachment_data
wp-includes/post.php 4359
$data = apply_filters( 'wp_insert_attachment_data', $data, $postarr, $unsanitized_postarr, $update);
Де використовується хук у WordPress
Використання не знайдено.