Make WordPress Core


Ignore:
Timestamp:
10/17/2022 06:10:19 PM (4 years ago)
Author:
SergeyBiryukov
Message:

Grouped backports to the 4.8 branch.

  • Posts, Post types: Apply KSES to post-by-email content,
  • General: Validate host on "Are you sure?" screen,
  • Posts, Post types: Remove emails from post-by-email logs,
  • Media: Refactor search by filename within the admin,
  • Pings/trackbacks: Apply KSES to all trackbacks,
  • Comments: Apply kses when editing comments,
  • Customize: Escape blogname option in underscores templates,
  • REST API: Lockdown post parameter of the terms endpoint,
  • Mail: Reset PHPMailer properties between use,
  • Query: Validate relation in WP_Date_Query,
  • Widgets: Escape RSS error messages for display.

Merges [54521], [54522], [54523], [54524], [54525], [54526], [54527], [54528], [54529], [54530], [54541] to the 4.8 branch.
Props voldemortensen, johnbillion, paulkevan, peterwilsoncc, xknown, dd32, audrasjb, martinkrcho, vortfu, davidbaumwald, tykoted, timothyblynjacobs, johnjamesjacoby, ehtis, matveb, talldanwp.

Location:
branches/4.8
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.8

  • branches/4.8/src/wp-includes/class-wp-query.php

    r47649 r54568  
    487487        private $compat_methods = array( 'init_query_flags', 'parse_tax_query' );
    488488
     489        /**
     490         * Controls whether an attachment query should include filenames or not.
     491         *
     492         * @since 6.0.3
     493         * @var bool
     494         */
     495        protected $allow_query_attachment_by_filename = false;
    489496        /**
    490497         * Resets query flags to false.
    … …  
    13471354
    13481355                        $like = $n . $wpdb->esc_like( $term ) . $n;
    1349                         $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s))", $like, $like, $like );
     1356
     1357                        if ( ! empty( $this->allow_query_attachment_by_filename ) ) {
     1358                                $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s) $andor_op (sq1.meta_value $like_op %s))", $like, $like, $like, $like );
     1359                        } else {
     1360                                $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s))", $like, $like, $like );
     1361                        }
    13501362                        $searchand = ' AND ';
    13511363                }
    … …  
    16841696                $q = $this->fill_query_vars($q);
    16851697
     1698                /**
     1699                 * Filters whether an attachment query should include filenames or not.
     1700                 *
     1701                 * @since 6.0.3
     1702                 *
     1703                 * @param bool $allow_query_attachment_by_filename Whether or not to include filenames.
     1704                 */
     1705                $this->allow_query_attachment_by_filename = apply_filters( 'wp_allow_query_attachment_by_filename', false );
     1706                remove_all_filters( 'wp_allow_query_attachment_by_filename' );
     1707
    16861708                // Parse meta query
    16871709                $this->meta_query = new WP_Meta_Query();
    … …  
    20882110                }
    20892111
    2090                 if ( !empty( $this->tax_query->queries ) || !empty( $this->meta_query->queries ) ) {
     2112                if ( ! empty( $this->tax_query->queries ) || ! empty( $this->meta_query->queries ) || ! empty( $this->allow_query_attachment_by_filename ) ) {
    20912113                        $groupby = "{$wpdb->posts}.ID";
    20922114                }
    … …  
    21362158                }
    21372159                $where .= $search . $whichauthor . $whichmimetype;
     2160
     2161                if ( ! empty( $this->allow_query_attachment_by_filename ) ) {
     2162                        $join .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )";
     2163                }
    21382164
    21392165                if ( ! empty( $this->meta_query->queries ) ) {
Note: See TracChangeset for help on using the changeset viewer.