_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.
Return
String[]
. The modified array of clauses.
Usage
_filter_query_attachment_filenames( $clauses );
- $clauses(string[]) (required)
- An array including WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT, fields (SELECT), and LIMITS clauses.
Notes
- Global. wpdb. $wpdb WordPress database abstraction object.
Changelog
Since 4.7.0 | Introduced. |
Code of _filter_query_attachment_filenames() 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 )',
$clauses['where']
);
return $clauses;
}