WordPress.org

Make WordPress Core

Changeset 45270


Ignore:
Timestamp:
04/26/2019 12:43:50 AM (5 months ago)
Author:
pento
Message:

Media: Revert [44947].

get_available_post_mime_types() uses a query that's extremely slow on sites with lots of posts. The original fix can be revisited after those performance issues are tackled.

See #43658.

Location:
trunk
Files:
2 edited

Legend:

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

    r45232 r45270  
    35773577    }
    35783578
    3579     // Filter to show only available mime types.
    3580     $avail_post_mime_types = get_available_post_mime_types( 'attachment' );
    3581     $mimeTypes             = wp_list_pluck( get_post_mime_types(), 0 );
    3582     foreach ( $mimeTypes as $mime_type => $label ) {
    3583         if ( ! wp_match_mime_types( $mime_type, $avail_post_mime_types ) ) {
    3584             unset( $mimeTypes[ $mime_type ] );
    3585         }
    3586     }
    35873579    $settings = array(
    35883580        'tabs'             => $tabs,
    35893581        'tabUrl'           => add_query_arg( array( 'chromeless' => true ), admin_url( 'media-upload.php' ) ),
    3590         'mimeTypes'        => $mimeTypes,
     3582        'mimeTypes'        => wp_list_pluck( get_post_mime_types(), 0 ),
    35913583        /** This filter is documented in wp-admin/includes/media.php */
    35923584        'captions'         => ! apply_filters( 'disable_captions', '' ),
  • trunk/tests/phpunit/tests/functions.php

    r44947 r45270  
    464464        $this->assertInternalType( 'array', $mimes );
    465465        $this->assertNotEmpty( $mimes );
    466     }
    467 
    468     /**
    469      * Test that the media grid uses the correct available single media type.
    470      * @ticket 43658
    471      */
    472     function test_wp_enqueue_media_single_mime_type() {
    473         $filename      = DIR_TESTDATA . '/images/test-image.jpg';
    474         $contents      = file_get_contents( $filename );
    475         $upload        = wp_upload_bits( basename( $filename ), null, $contents );
    476         $attachment_id = $this->_make_attachment( $upload );
    477 
    478         add_filter(
    479             'media_view_settings',
    480             function( $settings ) {
    481                 $this->assertEquals( array( 'image' ), array_keys( $settings['mimeTypes'] ) );
    482                 return $settings;
    483             }
    484         );
    485         wp_enqueue_media();
    486         remove_all_filters( 'media_view_settings' );
    487     }
    488 
    489     /**
    490      * Test that the media grid uses the correct available multiple media types.
    491      * @ticket 43658
    492      */
    493     function test_wp_enqueue_media_multiple_mime_types() {
    494         $filename      = DIR_TESTDATA . '/images/test-image.jpg';
    495         $contents      = file_get_contents( $filename );
    496         $upload        = wp_upload_bits( basename( $filename ), null, $contents );
    497         $attachment_id = $this->_make_attachment( $upload );
    498 
    499         $filename      = DIR_TESTDATA . '/uploads/small-audio.mp3';
    500         $contents      = file_get_contents( $filename );
    501         $upload        = wp_upload_bits( basename( $filename ), null, $contents );
    502         $attachment_id = $this->_make_attachment( $upload );
    503 
    504         add_filter(
    505             'media_view_settings',
    506             function( $settings ) {
    507                 $this->assertEquals( array( 'image', 'audio' ), array_keys( $settings['mimeTypes'] ) );
    508                 return $settings;
    509             }
    510         );
    511         wp_enqueue_media();
    512         remove_all_filters( 'media_view_settings' );
    513466    }
    514467
Note: See TracChangeset for help on using the changeset viewer.