Make WordPress Core

Changeset 34374


Ignore:
Timestamp:
09/22/2015 04:18:02 AM (11 years ago)
Author:
wonderboymusic
Message:

Media: In wp_read_image_metadata(), include IPTC Keywords when available in $meta.

Adds unit test.

Props swissspidy, dbru, SteveHoneyNZ.
Fixes #33772.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/image.php

    r34007 r34374  
    278278                'title' => '',
    279279                'orientation' => 0,
     280                'keywords' => array(),
    280281        );
    281282
     
    326327                        if ( ! empty( $iptc['2#116'][0] ) ) // copyright
    327328                                $meta['copyright'] = trim( $iptc['2#116'][0] );
     329
     330                        if ( ! empty( $iptc['2#025'][0] ) ) { // keywords array
     331                                $meta['keywords'] = array_values( $iptc['2#025'] );
     332                        }
    328333                 }
    329334        }
     
    411416         *
    412417         * @since 2.5.0
     418         * @since 4.4.0 The `$iptc` parameter was added.
    413419         *
    414420         * @param array  $meta            Image meta data.
    415421         * @param string $file            Path to image file.
    416422         * @param int    $sourceImageType Type of image.
    417          */
    418         return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType );
     423         * @param array  $iptc            IPTC data.
     424         */
     425        return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType, $iptc );
    419426
    420427}
  • trunk/tests/phpunit/tests/image/meta.php

    r29789 r34374  
    139139                $this->assertFalse($out);
    140140        }
     141
     142
     143        /**
     144         * @ticket 33772
     145         */
     146        public function test_exif_keywords() {
     147                $out = wp_read_image_metadata(DIR_TESTDATA.'/images/33772.jpg');
     148
     149                $this->assertEquals( '8', $out['aperture'] );
     150                $this->assertEquals( 'Photoshop Author', $out['credit'] );
     151                $this->assertEquals( 'DMC-LX2', $out['camera'] );
     152                $this->assertEquals( 'Photoshop Description', $out['caption'] );
     153                $this->assertEquals( 1306315327, $out['created_timestamp'] );
     154                $this->assertEquals( 'Photoshop Copyrright Notice', $out['copyright'] );
     155                $this->assertEquals( '6.3', $out['focal_length'] );
     156                $this->assertEquals( '100', $out['iso'] );
     157                $this->assertEquals( '0.0025', $out['shutter_speed'] );
     158                $this->assertEquals( 'Photoshop Document Ttitle', $out['title'] );
     159                $this->assertEquals( 1, $out['orientation']);
     160                $this->assertEquals( array( 'beach', 'baywatch', 'LA', 'sunset' ), $out['keywords'] );
     161        }
     162
    141163}
Note: See TracChangeset for help on using the changeset viewer.