是否使用图像的EXIF数据中的数据填充自定义附件元数据字段?

时间:2018-05-07 作者:tamrat

我想填充我从图像的EXIF数据中添加的两个自定义字段。我使用过滤器添加了字段attachment_fields_to_edit. 上传后,我可以在图像详细信息中看到这些字段。但它们是空的。我可以使用图像的EXIF数据自动填充这些字段吗?

1 个回复
SO网友:Pat J

你可以在add_attachmentedit_attachment 动作挂钩和使用PHPexif_read_data() 要将EXIF数据添加到附件的元数据,请执行以下操作:

<?php
add_action( \'add_attachment\', \'wpse302908_add_exif\' );
add_action( \'edit_attachment\', \'wpse302908_add_exif\' );

/**
 * Inserts metadata from an image\'s EXIF data.
 *
 * @param  int $post_id The attachment\'s post ID.
 * @return void
 */
function wpse302908_add_exif( $post_id ) {
    // These are the keys for the data you want from the EXIF data.
    $exif_keys = array( \'key_1\', \'key_2\' );
    $exif_data = exif_read_data( get_attachment_image_url( $attachment_id );
    foreach ( $exif_keys as $exif_key ) {
        update_post_meta( $post_id, $exif_key, $exif_data[ $exif_key ] );
    }

}
注释:此代码未经测试add_attachment hook
  • edit_attachment hook
  • exif_read_data()
  • wp_get_attachment_image_url()
  • update_post_meta()
  • 结束