WordPress at a glance
function is not described

_filter_query_attachment_filenames() WP 4.7.0

Filters the SQL clauses of an attachment query to include filenames.

This is an internal function for using it by WP core itself. It's not recommended to use this function in your code.

No Hooks.


String[]. The modified array of clauses.


_filter_query_attachment_filenames( $clauses );
$clauses(string[]) (required)
An array including WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT, fields (SELECT), and LIMITS clauses.


  • Global. wpdb. $wpdb WordPress database abstraction object.


Since 4.7.0 Introduced.

Code of _filter_query_attachment_filenames() WP 5.7

function _filter_query_attachment_filenames( $clauses ) {
	global $wpdb;
	remove_filter( 'posts_clauses', __FUNCTION__ );

	// Add a LEFT JOIN of the postmeta table so we don't trample existing JOINs.
	$clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )";

	$clauses['groupby'] = "{$wpdb->posts}.ID";

	$clauses['where'] = preg_replace(
		"/\({$wpdb->posts}.post_content (NOT LIKE|LIKE) (\'[^']+\')\)/",
		'$0 OR ( sq1.meta_value $1 $2 )',

	return $clauses;