Генерує метадані для зображення-вкладення та створює проміжні копії зображення – мініатюри всіх зареєстрованих розмірів.
Проміжні розміри вказуються в “Налаштуваннях медіафайлів” (мініатюра, середній, великий), також вони можуть бути створені функцією add_image_size() у темі або плагіні.
Функція не оновлює метадані вкладення, лише створює їх і всі необхідні розміри картинок. Зазвичай після роботи функції потрібно ще оновити метадані за допомогою wp_update_attachment_metadata() .
Функція оновлює метаполі записи _thumbnail_id, пов’язані з мініатюрою запису.
Цю функцію можна використовувати, щоб перестворити мініатюру картинки-вкладення та всі її проміжні розміри після того, як розміри були змінені в «Налаштуваннях медіафайлів». Але ця функція не видаляє вже створені проміжні розміри, а створює нові на додаток до наявних.
Мініатюра і проміжні розміри картинки, і елемент масиву [“sizes”] повертається функцією, тільки якщо створюваний розмір менше оригінального розміру картинки, в інших випадках проміжний розмір просто не створюється.
Функція не визначена у фронт-енді, тому для використання, наприклад, у шорткоді, вам потрібно підключити її, додавши такий рядок у код:
#2 Завантажимо вкладення на сервер і додамо його до запису.
Робочий приклад показує як можна завантажити картинку в папку uploads, прикріпити її до запису 37 і створити мініатюру і всі проміжні розміри цієї картинки.
// файл повинен бути у директорії завантажень WP.
$filename = '/path/to/uploads/2013/03/filname.jpg';
// ID посту, якого прикріпимо вкладення.
$parent_post_id = 37;
// Перевіримо тип посту, який ми будемо використовувати у полі 'post_mime_type'.
$filetype = wp_check_filetype( basename( $filename ), null );
// Отримаємо шлях до директорії завантажень.
$wp_upload_dir = wp_upload_dir();
// Підготуємо масив з необхідними даними вкладення.
$attachment = array(
'guid' => $wp_upload_dir['url'] . '/'. basename( $filename ),
'post_mime_type' => $filetype['type'],
'post_title' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ),
'post_content' => '',
'post_status' => 'inherit'
);
// Вставляємо запис до бази даних.
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
// Підключимо потрібний файл, якщо він ще не підключений
// wp_generate_attachment_metadata() залежить від цього файлу.
require_once(ABSPATH. 'wp-admin/includes/image.php');
// Створимо метадані для вкладення та оновимо запис у базі даних.
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
список змін
З версії 2.1.0
Введено.
Код wp_generate_attachment_metadata() wp generate attachment metadata WP 6.0.2