get_attached_file() – Retrieve attached file path based on attachment ID.

You appear to be a bot. Output may be restricted

Description

Retrieve attached file path based on attachment ID.

By default the path will go through the 'get_attached_file' filter, but passing a true to the $unfiltered argument of get_attached_file() will return the file path unfiltered. The function works by getting the single post meta name, named '_wp_attached_file' and returning it. This is a convenience function to prevent looking up the meta name and provide a mechanism for sending the attached filename through a filter.

Usage

$string|false = get_attached_file( $attachment_id, $unfiltered );

Parameters

$attachment_id
( int ) required – Attachment ID.
$unfiltered
( bool ) optional – Optional. Whether to apply filters. Default false.

Returns

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

Source

File name: wordpress/wp-includes/post.php
Lines:

1 to 25 of 25
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 && 0 !== strpos( $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 );
}
 

 View on GitHub View on Trac