get_attached_file( int $attachment_id, bool $unfiltered = false ): string|false

Retrieves attached file path based on attachment ID.

Description

By default the path will go through the ‘get_attached_file’ filter, but passing true to the $unfiltered argument will return the file path unfiltered.

The function works by retrieving the _wp_attached_file post meta value.
This is a convenience function to prevent looking up the meta name and provide a mechanism for sending the attached filename through a filter.

Parameters

$attachment_idintrequired
Attachment ID.
$unfilteredbooloptional
Whether to skip the 'get_attached_file' filter.

Default:false

Return

string|false The file path to where the attached file should be, false otherwise.

Source

function get_attached_file( $attachment_id, $unfiltered = false ) {	$file = get_post_meta( $attachment_id, '_wp_attached_file', true );	// If the file is relative, prepend upload dir.	if ( $file && ! str_starts_with( $file, '/' ) && ! preg_match( '|^.:\\\|', $file ) ) {	$uploads = wp_get_upload_dir();	if ( false === $uploads['error'] ) {	$file = $uploads['basedir'] . "/$file";	}	}	if ( $unfiltered ) {	return $file;	}	/** * Filters the attached file based on the given ID. * * @since 2.1.0 * * @param string|false $file The file path to where the attached file should be, false otherwise. * @param int $attachment_id Attachment ID. */	return apply_filters( 'get_attached_file', $file, $attachment_id ); } 

Hooks

apply_filters( ‘get_attached_file’, string|false $file, int $attachment_id )

Filters the attached file based on the given ID.

Changelog

VersionDescription
2.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.