A WordPress-centric search engine for devs and theme authors



_filter_query_attachment_filenames ›

Since4.7.0
Deprecatedn/a
_filter_query_attachment_filenames ( $clauses )
Access:
  • private
Parameters:
  • (array) $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT, fields (SELECT), and LIMITS clauses.
    Required: Yes
Returns:
  • (array) The modified clauses.
Defined at:
Codex:

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



Source

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 )",
		$clauses['where'] );

	return $clauses;
}