WordPress.org

Make WordPress Core

Ticket #39754: 39754.diff

File 39754.diff, 1.5 KB (added by dlh, 3 years ago)
  • src/wp-includes/post-formats.php

     
    222222        if ( in_array( 'post_format', (array) $taxonomies ) ) {
    223223                if ( isset( $args['fields'] ) && 'names' == $args['fields'] ) {
    224224                        foreach ( $terms as $order => $name ) {
    225                                 $terms[$order] = get_post_format_string( str_replace( 'post-format-', '', $name ) );
     225                                if ( 0 === strpos( $name, 'post-format-' ) ) {
     226                                        $string = get_post_format_string( str_replace( 'post-format-', '', $name ) );
     227
     228                                        if ( $string ) {
     229                                                $terms[ $order ] = $string;
     230                                        }
     231                                }
    226232                        }
    227233                } else {
    228234                        foreach ( (array) $terms as $order => $term ) {
  • tests/phpunit/tests/post/formats.php

     
    156156                $content_link = get_url_in_content( get_post_field( 'post_content', $comm_post_id ) );
    157157                $this->assertEquals( false, $content_link );
    158158        }
     159
     160        function test_post_format_get_terms_skips_non_format_names() {
     161                $this->assertSame(
     162                        array( 'Foo', 'post-format-foo', 'aside', 'Aside' ),
     163                        _post_format_get_terms(
     164                                array( 'Foo', 'post-format-foo', 'aside', 'post-format-aside' ),
     165                                array( 'post_format', 'category' ),
     166                                array( 'fields' => 'names' )
     167                        )
     168                );
     169        }
    159170}