Intereting Posts
Создание настраиваемых мета-полей на странице параметров плагина Использование действий, перехватов и фильтров на странице, отличной от WordPress. Какой пользователь / группа принадлежит WordPress в отношении прав доступа к файлам? Утвердить измененные должности Получить данные из wordpress db через ввод и поместить их в выпадающее меню Переопределить файл в родительской теме Использовать Google Fonts и unicodes wp_query – показать страницы с родительским именем Удалить дублирующиеся значения из цикла Как вставить новую пару мета-ключ / значение, но только если присутствует другой мета-ключ? WordPress CPT inexistent post загружает страницу блога Как добавить пост-пост-типа в другой пользовательский пост-пост после редактирования экрана с помощью AJAX? Отображать пользовательские типы сообщений по дате Невозможно применить пользовательский CSS к IE в теме avi mp4 flv видеоплеер

Сохранить информацию о камере как метаданные при загрузке изображения?

Я пытаюсь, чтобы WordPress автоматически сохранял метаданные «кредит», которые хранятся в изображениях, которые я загружаю. Я знаю, что это будет введено как update_post_meta() для персонализированного сообщения, используя update_post_meta() .

«Кредитная» информация собирается wp_read_image_metadata() , но media_handle_upload() не использует ее. Он использует только данные «подпись» и «название», собранные из изображения для post_content и post_title соответственно.

Я нашел несколько примеров добавления полей метаданных пользовательского вложения после загрузки при редактировании изображения, но поскольку WP уже собирает эту информацию из метаданных изображения, я хотел бы найти способ сохранить ее как изображение загружается.

Я не понимаю, какие шаги нужно предпринять, чтобы подключиться к media_handle_upload() (кажется, нет крючка), чтобы я мог вызвать update_post_meta чтобы сохранить строку «кредит» для вложения.

Solutions Collecting From Web of "Сохранить информацию о камере как метаданные при загрузке изображения?"

Вы можете использовать wp_generate_attachment_metadata :

Эта функция генерирует метаданные для прикрепления изображения. Он также создает миниатюры и другие промежуточные размеры вложения изображения на основе размеров, определенных на Settings_Media_Screen.

Второй аргумент фильтра – это идентификатор вложения, поэтому не должно быть проблем с добавлением метаданных:

 add_filter( 'wp_generate_attachment_metadata', 'manipulate_metadata_wpse_91177', 10, 2 ); function manipulate_metadata_wpse_91177( $metadata, $attachment_id ) { // var_dump( $metadata['image_meta'] ); // Credit is inside $metadata['image_meta']['credit'] return $metadata; } 

$metadata['image_meta'] содержимое $metadata['image_meta'] с помощью FirePHP, это результаты:

 aperture: 4 camera: "DMC-FZ100" caption: "" copyright: "" created_timestamp: 1352136868 credit: "" focal_length: "9.2" iso: "100" shutter_speed: "0.003125" title: "Double Dip" 

[Обновить]
Полный тест с добавлением настраиваемого столбца на экране Media Library ( /wp-admin/upload.php ) для отображения метаданных сообщения:

 add_filter( 'wp_generate_attachment_metadata', 'manipulate_metadata_wpse_91177', 10, 2 ); add_filter( 'manage_upload_columns', 'camera_info_column_wpse_91177' ); add_action( 'manage_media_custom_column', 'camera_info_display_wpse_91177', 10, 2 ); function manipulate_metadata_wpse_91177( $metadata, $attachment_id ) { update_post_meta( $attachment_id, 'photo_title', $metadata['image_meta']['title'] ); update_post_meta( $attachment_id, 'photo_camera', $metadata['image_meta']['camera'] ); return $metadata; } function camera_info_column_wpse_91177( $columns ) { $columns['cam_info'] = 'Camera Info'; return $columns; } function camera_info_display_wpse_91177( $column_name, $post_id ) { if( 'cam_info' != $column_name || !wp_attachment_is_image( $post_id ) ) return; $title = get_post_meta( $post_id, 'photo_title', true ); $camera = get_post_meta( $post_id, 'photo_camera', true ); $echo_title = $title ? 'Title: ' . $title . '<br />' : ''; $echo_camera = $camera ? 'Camera: ' . $camera : ''; echo $echo_title . $echo_camera; } 

информация о камере

Несколько связанных вопросов и ответов: создайте новую категорию при сохранении на основе информации о должности