Make WordPress Core

Ticket #22744: 22744.2.diff

File 22744.2.diff, 1.7 KB (added by DrewAPicture, 10 years ago)

docs

  • src/wp-admin/includes/post.php

     
    10101010}
    10111011
    10121012/**
     1013 * Allow 'meta_query' to persist during wp().
     1014 *
     1015 * @since 4.0.0
     1016 * @access private
     1017 *
     1018 * @param array $q Query vars constructed during WP->parse_request().
     1019 * @return array The altered query vars.
     1020 */
     1021function _wp_filter_attachment_search( $q ) {
     1022        remove_filter( 'request', __FUNCTION__ );
     1023
     1024        $q['meta_query'] = array(
     1025                'relation' => 'OR',
     1026                array(
     1027                        'key' => '_wp_attached_file',
     1028                        'value' => $q['s'],
     1029                        'compare' => 'LIKE'
     1030                )
     1031        );
     1032        return $q;
     1033}
     1034
     1035/**
     1036 * Filter meta SQL to mark this search criteria as optional.
     1037 *
     1038 * @since 4.0.0
     1039 * @access private
     1040 *
     1041 * @param array $sql WHERE and JOIN SQL clauses.
     1042 * @return array The filtered clauses.
     1043 */
     1044function _wp_filter_attachment_meta_sql( $sql ) {
     1045        remove_filter( 'get_meta_sql', __FUNCTION__ );
     1046
     1047        // @todo Explain what is happening here.
     1048        if ( 0 === strpos( $sql['where'], ' AND (' ) ) {
     1049                list( $_, $clauses ) = explode( ' AND ', $sql['where'], 2 );
     1050                $sql['where'] = " OR ({$clauses})";
     1051        }
     1052        return $sql;
     1053}
     1054
     1055/**
    10131056 * Executes a query for attachments. An array of WP_Query arguments
    10141057 * can be passed in, which will override the arguments set by this function.
    10151058 *
     
    10531096        if ( isset($q['detached']) )
    10541097                $q['post_parent'] = 0;
    10551098
     1099        if ( ! empty( $q['s'] ) ) {
     1100                add_filter( 'request', '_wp_filter_attachment_search' );
     1101                add_filter( 'get_meta_sql', '_wp_filter_attachment_meta_sql' );
     1102        }
     1103
    10561104        wp( $q );
    10571105
    10581106        return array($post_mime_types, $avail_post_mime_types);