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);