WordPress.org

Make WordPress Core

Ticket #22744: 22744.diff

File 22744.diff, 1.6 KB (added by wonderboymusic, 4 years ago)
  • src/wp-admin/includes/post.php

     
    10101010} 
    10111011 
    10121012/** 
     1013 * Allow 'meta_query' to persist during wp() 
     1014 * 
     1015 * @since 4.0.0 
     1016 * 
     1017 * @param array $q Query vars constructed during WP->parse_request() 
     1018 * @return array The altered query vars. 
     1019 */ 
     1020function _wp_filter_attachment_search( $q ) { 
     1021        remove_filter( 'request', __FUNCTION__ ); 
     1022 
     1023        $q['meta_query'] = array( 
     1024                'relation' => 'OR', 
     1025                array( 
     1026                        'key' => '_wp_attached_file', 
     1027                        'value' => $q['s'], 
     1028                        'compare' => 'LIKE' 
     1029                ) 
     1030        ); 
     1031        return $q; 
     1032} 
     1033 
     1034/** 
     1035 * Filter meta SQL to mark this search criteria as optional 
     1036 * 
     1037 * @since 4.0.0 
     1038 * 
     1039 * @param array $sql 'where' and 'join' clauses. 
     1040 * @return array The filtered clauses. 
     1041 */ 
     1042function _wp_filter_attachment_meta_sql( $sql ) { 
     1043        remove_filter( 'get_meta_sql', __FUNCTION__ ); 
     1044        if ( 0 === strpos( $sql['where'], ' AND (' ) ) { 
     1045                list( $_, $clauses ) = explode( ' AND ', $sql['where'], 2 ); 
     1046                $sql['where'] = " OR ({$clauses})"; 
     1047        } 
     1048        return $sql; 
     1049} 
     1050 
     1051/** 
    10131052 * Executes a query for attachments. An array of WP_Query arguments 
    10141053 * can be passed in, which will override the arguments set by this function. 
    10151054 * 
     
    10531092        if ( isset($q['detached']) ) 
    10541093                $q['post_parent'] = 0; 
    10551094 
     1095        if ( ! empty( $q['s'] ) ) { 
     1096                add_filter( 'request', '_wp_filter_attachment_search' ); 
     1097                add_filter( 'get_meta_sql', '_wp_filter_attachment_meta_sql' ); 
     1098        } 
     1099 
    10561100        wp( $q ); 
    10571101 
    10581102        return array($post_mime_types, $avail_post_mime_types);