根据附件ID检索附加的文件路径。

原型

get_attached_file( int $attachment_id, bool $unfiltered = false )

描述

默认情况下,路径将通过’get_attached_file’过滤器,但将true传递给get_attached_file()的$ unfiltered参数将返回未过滤的文件路径。

参数

$attachment_id (int) (Required) 附件ID。

$unfiltered (bool) (Optional)  是否应用过滤器。

返回值

(string|false)  附加文件所在的文件路径,否则为false。

源文件

路径:wp-includes/post.php

<?php
...
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() ) && 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 $file          Path to attached file.
	 * @param int    $attachment_id Attachment ID.
	 */
	return apply_filters( 'get_attached_file', $file, $attachment_id );
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_attached_file/